test_that("basic tfrmt - title", { t_frmt <- tfrmt( title = "Table Title" ) expect_s3_class(t_frmt, "tfrmt") expect_equal(t_frmt$title, "Table Title") expect_equal(t_frmt$group,vars()) expect_equal(t_frmt$label,quo()) expect_equal(t_frmt$param,quo()) expect_equal(t_frmt$value,quo()) expect_equal(t_frmt$column,vars()) }) test_that("basic tfrmt - selecting group/label/param/value/column - quo", { t_frmt <- tfrmt( title = "Table Title", group = vars(row_label1), label = quo(row_label2), param = quo(param), value = quo(value), column = vars(column) ) expect_s3_class(t_frmt,"tfrmt") expect_equal( t_frmt$title, "Table Title") expect_equal( t_frmt$group, vars(row_label1), ignore_attr = TRUE ) expect_equal( t_frmt$label, quo(row_label2), ignore_attr = TRUE ) expect_equal( t_frmt$param, quo(param), ignore_attr = TRUE ) expect_equal( t_frmt$value, quo(value), ignore_attr = TRUE ) expect_equal( t_frmt$column, vars(column), ignore_attr = TRUE ) }) test_that("basic tfrmt - selecting group/label/param/value/column - quo into var entries", { t_frmt <- tfrmt( title = "Table Title", group = quo(row_label1), label = quo(row_label2), param = quo(param), value = quo(value), column = quo(column) ) expect_s3_class(t_frmt,"tfrmt") expect_equal( t_frmt$title, "Table Title") expect_equal( t_frmt$group, vars(row_label1), ignore_attr = TRUE ) expect_equal( t_frmt$label, quo(row_label2), ignore_attr = TRUE ) expect_equal( t_frmt$param, quo(param), ignore_attr = TRUE ) expect_equal( t_frmt$value, quo(value), ignore_attr = TRUE ) expect_equal( t_frmt$column, vars(column), ignore_attr = TRUE ) }) test_that("basic tfrmt - selecting group/label/param/value/column - char", { t_frmt <- tfrmt( title = "Table Title", group = c("row_label1"), label = c("row_label2"), param = c("param"), value = c("value"), column = c("column") ) expect_s3_class(t_frmt,"tfrmt") expect_equal( t_frmt$title, "Table Title") expect_equal( t_frmt$group, vars(row_label1), ignore_attr = TRUE ) expect_equal( t_frmt$label, quo(row_label2), ignore_attr = TRUE) expect_equal( t_frmt$param, quo(param), ignore_attr = TRUE) expect_equal( t_frmt$value, quo(value), ignore_attr = TRUE) expect_equal( t_frmt$column, vars(column), ignore_attr = TRUE) }) test_that("basic tfrmt - selecting group/label/param/value/column - bare", { t_frmt <- tfrmt( title = "Table Title", group = c(row_label1, row_label4), label = row_label2, param = param, value = value, column = column ) expect_s3_class(t_frmt,"tfrmt") expect_equal( t_frmt$title, "Table Title") expect_equal( t_frmt$group, vars(row_label1, row_label4), ignore_attr = TRUE) expect_equal( t_frmt$label, quo(row_label2), ignore_attr = TRUE) expect_equal( t_frmt$param, quo(param), ignore_attr = TRUE) expect_equal( t_frmt$value, quo(value), ignore_attr = TRUE) expect_equal( t_frmt$column, vars(column), ignore_attr = TRUE) }) test_that("basic tfrmt - length one quo warning", { single_warning <- capture_warnings({ tfrmt( title = "Table Title", group = row_label1, label = vars(row_label2,row_label3), param = param, value = value, column = column ) }) expect_equal( single_warning, paste0( "Passed more than one quosure to the argument `", "label", "`. Selecting the first entry." ) ) multi_warning <- capture_warnings({ tfrmt( title = "Table Title", group = row_label1, label = vars(row_label2,row_label3), param = vars(param, param2), value = vars(value, value2), column = vars(column, column2) ) }) expect_equal( multi_warning, c( "Passed more than one quosure to the argument `label`. Selecting the first entry.", "Passed more than one quosure to the argument `param`. Selecting the first entry.", "Passed more than one quosure to the argument `value`. Selecting the first entry." ) ) }) test_that("basic tfrmt - bare/char mix error", { expect_error( tfrmt( title = "Table Title", group = c(row_label1, "row_label4"), label = row_label2, param = param, value = value, column = column ), paste0( "Entries for `", "group", "` argument must be vars(), a character vector, or unquoted column name.\n", " Consider updating the argument input to `", "group", "` to:\n\t", "vars(row_label1,row_label4)" ), fixed = TRUE ) }) test_that("layering tfrmt - default table elements - func/tfrmt",{ t_frmt_title <- tfrmt( title = "Table Title" ) t_frmt_layered <- t_frmt_title %>% layer_tfrmt( tfrmt( subtitle = "Table Subtitle" )) expect_s3_class( t_frmt_layered, "tfrmt" ) expect_equal( t_frmt_layered$title, "Table Title" ) expect_equal( t_frmt_layered$subtitle, "Table Subtitle" ) expect_equal(t_frmt_layered$group,vars()) expect_equal(t_frmt_layered$label,quo()) expect_equal(t_frmt_layered$param,quo()) expect_equal(t_frmt_layered$value,quo()) expect_equal(t_frmt_layered$column,vars()) }) test_that("layering tfrmt - select latest table elements",{ t_frmt_title <- tfrmt( title = "Table Title" ) t_frmt_layered <- t_frmt_title %>% layer_tfrmt( tfrmt( title = "Table Title 2", subtitle = "Table Subtitle" )) expect_s3_class( t_frmt_layered,"tfrmt" ) expect_equal( t_frmt_layered$title, "Table Title 2") expect_equal( t_frmt_layered$subtitle, "Table Subtitle") }) test_that("layering tfrmt - body style elements",{ t_frmt_title <- tfrmt( title = "Table Title", body_plan = body_plan( frmt_structure( group_val = c("group1"), label_val = ".default", frmt("XXX") ) ) ) t_frmt_layered <- t_frmt_title %>% layer_tfrmt( tfrmt( body_plan = body_plan( frmt_structure( group_val = c("group2"), label_val = ".default", frmt("xx.x") ) ) ) ) expect_s3_class(t_frmt_layered, "tfrmt") expect_equal( t_frmt_layered$title, "Table Title") expect_equal(t_frmt_layered$body_plan, body_plan(frmt_structure(group_val = "group1", label_val = ".default", frmt("XXX")), frmt_structure(group_val = "group2", label_val = ".default", frmt("xx.x")))) }) test_that("layering tfrmt - body style elements - multiple",{ t_frmt_title <- tfrmt( title = "Table Title", body_plan = body_plan( frmt_structure( group_val = "group1", label_val = ".default", frmt("XXX") ) ) ) t_frmt_layered <- t_frmt_title %>% layer_tfrmt( tfrmt(subtitle = "Table Subtitle", body_plan = body_plan( frmt_structure(group_val = "group2",label_val = ".default", frmt("xx.x")), frmt_structure(group_val = "group3",label_val = ".default", frmt("xx.xx")) ) ) ) expect_s3_class(t_frmt_layered,"tfrmt") expect_equal(t_frmt_layered$title, "Table Title") expect_equal(t_frmt_layered$subtitle, "Table Subtitle") expect_equal( t_frmt_layered$body_plan, body_plan( frmt_structure(group_val = "group1",label_val = ".default",frmt("XXX")), frmt_structure(group_val = "group2",label_val = ".default",frmt("xx.x")), frmt_structure(group_val = "group3",label_val = ".default",frmt("xx.xx")) ) ) }) test_that("layering tfrmt - body style elements - join_body_style FALSE",{ t_frmt_title <- tfrmt( title = "Table Title", body_plan = body_plan( frmt_structure( group_val = "group1", label_val = ".default", frmt("XXX") ) ) ) t_frmt_layered <- t_frmt_title %>% layer_tfrmt( tfrmt(subtitle = "Table Subtitle", body_plan = body_plan( frmt_structure(group_val = "group2",label_val = ".default",frmt("xx.x")), frmt_structure(group_val = "group3",label_val = ".default",frmt("xx.xx")) ) ), join_body_plans = FALSE ) expect_s3_class(t_frmt_layered,"tfrmt") expect_equal(t_frmt_layered$title, "Table Title") expect_equal(t_frmt_layered$subtitle, "Table Subtitle") expect_equal( t_frmt_layered$body_plan, body_plan( frmt_structure(group_val = "group2",label_val = ".default",frmt("xx.x")), frmt_structure(group_val = "group3",label_val = ".default",frmt("xx.xx")) ) ) }) test_that("layering tfrmt - keeping original var/quo",{ t_frmt_o <- tfrmt( title = "Table Title", group = c(Group1, Group2), label = label1 ) t_frmt_layered <- t_frmt_o %>% layer_tfrmt( tfrmt( title = "Table Title 2", subtitle = "Table Subtitle" )) expect_s3_class( t_frmt_layered,"tfrmt" ) expect_equal( t_frmt_layered$title, "Table Title 2") expect_equal( t_frmt_layered$subtitle, "Table Subtitle") expect_equal( t_frmt_layered$group, vars(Group1, Group2), ignore_attr = TRUE ) expect_equal( t_frmt_layered$label, quo(label1), ignore_attr = TRUE ) }) test_that("layering tfrmt - Mixing var/quo",{ t_frmt_o <- tfrmt( title = "Table Title", group = c(Group1, Group2), label = label1 ) t_frmt_layered <- t_frmt_o %>% layer_tfrmt( tfrmt( title = "Table Title 2", subtitle = "Table Subtitle", label = label3 )) expect_s3_class( t_frmt_layered,"tfrmt" ) expect_equal( t_frmt_layered$title, "Table Title 2") expect_equal( t_frmt_layered$subtitle, "Table Subtitle") expect_equal( t_frmt_layered$group, vars(Group1, Group2), ignore_attr = TRUE ) expect_equal( t_frmt_layered$label, quo(label3), ignore_attr = TRUE ) }) test_that("basic tfrmt - ... args",{ ## arg is not to actual arg message_res <- capture_messages( tfrmt( totally_fake_arg = "my_col" ) ) expect_equal( message_res, "Argument 'totally_fake_arg' passed to tfrmt is not a recognized argument." ) ## arg is spelled close to actual arg message_res <- capture_messages( tfrmt( colmn = "my_col", ) ) expect_equal( message_res, "Argument 'colmn' passed to tfrmt is not a recognized argument.\nDid you intend to use the argument `column`?" ) message_res <- capture_messages( tfrmt( colmn = "my_col", lalbl = "label" ) ) expect_equal( message_res, c("Argument 'colmn' passed to tfrmt is not a recognized argument.\nDid you intend to use the argument `column`?", "Argument 'lalbl' passed to tfrmt is not a recognized argument.\nDid you intend to use the argument `label`?") ) }) test_that("basic tfrmt - erroring args", { expect_error( tfrmt( body_plan = body_plan( frmt_structure(group_val = ".default", label_val = ".default", frmt("XX")), ) ), paste0("Error in evaluating argument `body_plan`:\n ", "Error in body_plan(frmt_structure(group_val = \".default\",", " label_val = \".default\", : argument is missing, with no default" ), fixed = TRUE ) }) test_that("basic tfrmt - func calls into quo and var args", { t_frmt <- tfrmt( title = "Table Title", group = c(col, df), label = runif, param = abs, value = acos, column = adist ) expect_s3_class(t_frmt,"tfrmt") expect_equal( t_frmt$title, "Table Title") expect_equal( t_frmt$group, vars(col, df), ignore_attr = TRUE) expect_equal( t_frmt$label, quo(runif), ignore_attr = TRUE) expect_equal( t_frmt$param, quo(abs), ignore_attr = TRUE) expect_equal( t_frmt$value, quo(acos), ignore_attr = TRUE) expect_equal( t_frmt$column, vars(adist), ignore_attr = TRUE) }) test_that("advanced tfrmt - tfrmt maker", { tfrmt_maker <- function(title, group, label, param_val){ tfrmt( title = title, group = group, label = label, param = param_val ) } tfrmt_maker_2 <- function(title, group, label, param_val){ tfrmt_inputs <- quo_get(c("group","label","param_val"), as_var_args = "group", as_quo_args = c("label","param_val")) tfrmt( title = title, group = tfrmt_inputs$group, label = tfrmt_inputs$label, param = tfrmt_inputs$param_val ) } tfrmt_maker_3 <- function(title, group, label, param_val, ...){ tfrmt_inputs <- quo_get(c("group","label","param_val"), as_var_args = "group", as_quo_args = c("label","param_val")) bp <- body_plan( ... ) tfrmt( title = title, group = tfrmt_inputs$group, label = tfrmt_inputs$label, param = tfrmt_inputs$param_val, body_plan = bp ) } new_tfrmt <- tfrmt_maker("Table Title", vars(value1, value2), quo(labs), "parameter") new_tfrmt_char <- tfrmt_maker("Table Title", c("value1", "value2"), "labs", "parameter") new_tfrmt_2 <- tfrmt_maker_2("Table Title", vars(value1, value2), quo(labs), "parameter") new_tfrmt_2_char <- tfrmt_maker_2("Table Title", c("value1", "value2"), "labs", "parameter") expect_s3_class(new_tfrmt,"tfrmt") expect_equal( new_tfrmt$title, "Table Title") expect_equal( new_tfrmt$group, vars(value1, value2), ignore_attr = TRUE) expect_equal( new_tfrmt$label, quo(labs), ignore_attr = TRUE) expect_equal( new_tfrmt$param, quo(parameter), ignore_attr = TRUE) expect_s3_class(new_tfrmt_char,"tfrmt") expect_equal( new_tfrmt_char$title, "Table Title") expect_equal( new_tfrmt_char$group, vars(value1, value2), ignore_attr = TRUE) expect_equal( new_tfrmt_char$label, quo(labs), ignore_attr = TRUE) expect_equal( new_tfrmt_char$param, quo(parameter), ignore_attr = TRUE) expect_s3_class(new_tfrmt_2,"tfrmt") expect_equal( new_tfrmt_2$title, "Table Title") expect_equal( new_tfrmt_2$group, vars(value1, value2), ignore_attr = TRUE) expect_equal( new_tfrmt_2$label, quo(labs), ignore_attr = TRUE) expect_equal( new_tfrmt_2$param, quo(parameter), ignore_attr = TRUE) expect_s3_class(new_tfrmt_2_char,"tfrmt") expect_equal( new_tfrmt_2_char$title, "Table Title") expect_equal( new_tfrmt_2_char$group, vars(value1, value2), ignore_attr = TRUE) expect_equal( new_tfrmt_2_char$label, quo(labs), ignore_attr = TRUE) expect_equal( new_tfrmt_2_char$param, quo(parameter), ignore_attr = TRUE) new_tfrmt_with_bp <- tfrmt_maker_3( "Table Title", vars(value1, value2), quo(labs), "parameter", frmt_structure(group_val = ".default", label_val = ".default", frmt("xx.xx") ), frmt_structure(group_val = "group1", label_val = ".default", frmt("xxx.xx") ) ) expect_s3_class(new_tfrmt_with_bp,"tfrmt") expect_equal( new_tfrmt_with_bp$title, "Table Title") expect_equal( new_tfrmt_with_bp$group, vars(value1, value2), ignore_attr = TRUE) expect_equal( new_tfrmt_with_bp$label, quo(labs), ignore_attr = TRUE) expect_equal( new_tfrmt_with_bp$param, quo(parameter), ignore_attr = TRUE) expect_equal( new_tfrmt_with_bp$body_plan, body_plan( frmt_structure(group_val = ".default", label_val = ".default", frmt("xx.xx") ), frmt_structure(group_val = "group1", label_val = ".default", frmt("xxx.xx") ) ), ignore_attr = TRUE) bp <- body_plan( frmt_structure(group_val = ".default", label_val = ".default", frmt("xx.xx") ) ) new_tfrmt_with_bp_2 <- tfrmt_maker_3( "Table Title", vars(value1, value2), quo(labs), "parameter", frmt_structure(group_val = ".default", label_val = ".default", frmt("xx.xx") ), frmt_structure(group_val = "group1", label_val = ".default", frmt("xxx.xx") ) ) expect_s3_class(new_tfrmt_with_bp_2,"tfrmt") expect_equal( new_tfrmt_with_bp_2$title, "Table Title") expect_equal( new_tfrmt_with_bp_2$group, vars(value1, value2), ignore_attr = TRUE) expect_equal( new_tfrmt_with_bp_2$label, quo(labs), ignore_attr = TRUE) expect_equal( new_tfrmt_with_bp_2$param, quo(parameter), ignore_attr = TRUE) ## make sure it selects the right bp (not the global env one first) expect_equal( new_tfrmt_with_bp_2$body_plan, body_plan( frmt_structure(group_val = ".default", label_val = ".default", frmt("xx.xx") ), frmt_structure(group_val = "group1", label_val = ".default", frmt("xxx.xx") ) ), ignore_attr = TRUE) }) test_that("layering tfrmt - valid layering should be silent - even when a quo arg is equal to itself",{ expect_silent({ tfrmt( label = label ) %>% tfrmt( # Specify title, subtitle, footer title = "Table Name", subtitle = "Study ID: GSK12345" ) }) expect_silent({ tfrmt( label = label ) %>% tfrmt( label = label ) }) }) test_that("basic tfrmt - error when body_plan groups does not match group arg",{ expect_silent( tfrmt( group = vars(group1, group2), body_plan = body_plan( frmt_structure( group_val = c("value"), label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(group1 = "value"), label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(group2 = "value"), label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(group1 = "value", group2 = "value"), label_val = ".default", frmt("XXX") ) ) ) ) expect_error( tfrmt( group = vars(group1, group2), body_plan = body_plan( frmt_structure( group_val = list(invalid = "value", invalid2 = "value"), label_val = ".default", frmt("XXX") ) ) ), paste0( "Inconsistencies between group and body_plan\n", "Invalid Format Structure in body_plan at position `1`:\n", " Malformed Group: invalid, invalid2" ), fixed = TRUE ) }) test_that("basic tfrmt - error when row_grp_plan groups does not match group arg",{ expect_silent( tfrmt( group = vars(group1, group2), row_grp_plan = row_grp_plan( row_grp_structure( group_val = "value", element_block = element_block(" ") ), row_grp_structure( group_val = list(group2 = "value"), element_block = element_block(post_space = "-") ), row_grp_structure( group_val = list(group1 = "value", group2 = "value"), element_block = element_block(post_space = NULL) ) ) ) ) expect_error( tfrmt( group = vars(group1, group2), row_grp_plan = row_grp_plan( row_grp_structure( group_val = list(invalid = "value", invalid2 = "value"), element_block = element_block(post_space = NULL) ) ) ), paste0( "Inconsistencies between group and row_grp_plan row_grp_structures\n", "Invalid Format Structure in row_grp_plan for row_grp_structure `1`:\n", " Malformed Group: invalid, invalid2" ), fixed = TRUE ) }) test_that("basic tfrmt - error when footnote_plan groups does not match group arg",{ expect_silent( tfrmt( group = vars(group1, group2), footnote_plan = footnote_plan( footnote_structure( footnote_text = "footnote 2", group_val = list(group2 = "value"), column_val = "column value", label_val = "label value" ), footnote_structure( footnote_text = "footnote 3", group_val = list(group1 = "value", group2 = "value"), column_val = "column value", label_val = "label value" ), marks = "standard" ) ) ) expect_error( tfrmt( group = vars(group1, group2), footnote_plan = footnote_plan( footnote_structure( footnote_text = "footnote 2", group_val = list(group2 = "value"), column_val = "column value", label_val = "label value" ), footnote_structure( footnote_text = "footnote 3", group_val = list(invalid = "value", invalid2 = "value"), column_val = "column value", label_val = "label value" ), marks = "standard" ) ), paste0( "Inconsistencies between group and footnote_plan footnote_structures\n", "Invalid Format Structure in footnote_plan for footnote_structure `2`:\n", " Malformed Group: invalid, invalid2" ), fixed = TRUE ) }) test_that("basic tfrmt - error when body_plan, row_grp_plan, or footnote_plan groups does not match group arg",{ expect_silent( tfrmt( group = vars(group1, group2), body_plan = body_plan( frmt_structure( group_val = list(group1 = "value", group2 = "value"), label_val = ".default", frmt("XXX") ) ), row_grp_plan = row_grp_plan( row_grp_structure( group_val = list(group1 = "value", group2 = "value"), element_block = element_block(post_space = NULL) ) ), footnote_plan = footnote_plan( footnote_structure( footnote_text = "footnote 3", group_val = list(group1 = "value", group2 = "value"), column_val = "column value", label_val = "label value" ), marks = "standard" ) ) ) expect_error( tfrmt( group = vars(group1, group2), body_plan = body_plan( frmt_structure( group_val = list(invalid = "value", invalid2 = "value"), label_val = ".default", frmt("XXX") ) ), row_grp_plan = row_grp_plan( row_grp_structure( group_val = list(invalid = "value", invalid2 = "value"), element_block = element_block(post_space = NULL) ) ), footnote_plan = footnote_plan( footnote_structure( footnote_text = "footnote 3", group_val = list(invalid = "value", invalid2 = "value"), column_val = "column value", label_val = "label value" ), marks = "standard" ) ), paste0( "Inconsistencies between group and body_plan\n", "Invalid Format Structure in body_plan at position `1`:\n", " Malformed Group: invalid, invalid2\n\n", "Inconsistencies between group and row_grp_plan row_grp_structures\n", "Invalid Format Structure in row_grp_plan for row_grp_structure `1`:\n", " Malformed Group: invalid, invalid2\n\n", "Inconsistencies between group and footnote_plan footnote_structures\n", "Invalid Format Structure in footnote_plan for footnote_structure `1`:\n", " Malformed Group: invalid, invalid2" ), fixed = TRUE ) }) test_that("layering tfrmt - error when body_plan groups no longer match group arg",{ basic_tfrmt <- tfrmt( group = vars(group1, group2), body_plan = body_plan( frmt_structure( group_val = c("value"), label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(group1 = "value"), label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(group2 = "value"), label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(group1 = "value", group2 = "value"), label_val = ".default", frmt("XXX") ) ) ) expect_silent( basic_tfrmt %>% tfrmt( group = vars(group2, group1) ) ) expect_error( basic_tfrmt %>% tfrmt( group = vars(new_group1, new_group2) ), "You might need to update group names using \"update_group(`new_group1` = `group1`,`new_group2` = `group2`)\"", fixed = TRUE ) }) test_that("layering tfrmt - error when plan groups no longer match group arg",{ basic_tfrmt <- tfrmt( group = vars(group1, group2), body_plan = body_plan( frmt_structure( group_val = list(group1 = "value", group2 = "value"), label_val = ".default", frmt("XXX") ) ), row_grp_plan = row_grp_plan( row_grp_structure( group_val = list(group1 = "value", group2 = "value"), element_block = element_block(post_space = NULL) ) ), footnote_plan = footnote_plan( footnote_structure( footnote_text = "footnote 3", group_val = list(group1 = "value", group2 = "value"), column_val = "column value", label_val = "label value" ), marks = "standard" ) ) expect_silent( basic_tfrmt %>% tfrmt( group = vars(group2, group1) ) ) expect_error( basic_tfrmt %>% tfrmt( group = vars(new_group1, new_group2) ), "You might need to update group names using \"update_group(`new_group1` = `group1`,`new_group2` = `group2`)\"", fixed = TRUE ) }) test_that("updating tfrmt - updating group vars - body_plan",{ tfrmt1 <- tfrmt( group = c(group1, group2), body_plan = body_plan( frmt_structure( group_val = "value", label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(group2 = "value"), label_val = ".default", frmt("XXXX") ), frmt_structure( group_val = list(group1 = "value", group2 = "value"), label_val = ".default", frmt("XXXXX") ) ) ) tfrmt2 <- tfrmt1 %>% update_group(New_Group = group1) expect_equal( tfrmt2, tfrmt( group = c(New_Group, group2), body_plan = body_plan( frmt_structure( group_val = "value", label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(group2 = "value"), label_val = ".default", frmt("XXXX") ), frmt_structure( group_val = list(New_Group = "value", group2 = "value"), label_val = ".default", frmt("XXXXX") ) ) ), ignore_function_env = TRUE, ignore_formula_env = TRUE ) tfrmt3 <- tfrmt1 %>% update_group( New_Group = group1, `best group` = group2 ) expect_equal( tfrmt3, tfrmt( group = c(New_Group, `best group`), body_plan = body_plan( frmt_structure( group_val = "value", label_val = ".default", frmt("XXX") ), frmt_structure( group_val = list(`best group` = "value"), label_val = ".default", frmt("XXXX") ), frmt_structure( group_val = list(New_Group = "value", `best group` = "value"), label_val = ".default", frmt("XXXXX") ) ) ), ignore_function_env = TRUE, ignore_formula_env = TRUE ) }) test_that("updating tfrmt - updating group vars - row_grp_plan",{ tfrmt1 <- tfrmt( group = c(group1, group2), row_grp_plan = row_grp_plan( row_grp_structure( group_val = "value", element_block = element_block(" ") ), row_grp_structure( group_val = list(group2 = "value"), element_block = element_block(post_space = "-") ), row_grp_structure( group_val = list(group1 = "value", group2 = "value"), element_block = element_block(post_space = NULL) ) ) ) tfrmt2 <- tfrmt1 %>% update_group(New_Group = group1) expect_equal( tfrmt2, tfrmt( group = c(New_Group, group2), row_grp_plan = row_grp_plan( row_grp_structure( group_val = "value", element_block = element_block(" ") ), row_grp_structure( group_val = list(group2 = "value"), element_block = element_block(post_space = "-") ), row_grp_structure( group_val = list(New_Group = "value", group2 = "value"), element_block = element_block(post_space = NULL) ) ) ), ignore_function_env = TRUE, ignore_formula_env = TRUE ) tfrmt3 <- tfrmt1 %>% update_group( New_Group = group1, `best group` = group2 ) expect_equal( tfrmt3, tfrmt( group = c("New_Group", "best group"), row_grp_plan = row_grp_plan( row_grp_structure( group_val = "value", element_block = element_block(" ") ), row_grp_structure( group_val = list(`best group` = "value"), element_block = element_block(post_space = "-") ), row_grp_structure( group_val = list(New_Group = "value", `best group` = "value"), element_block = element_block(post_space = NULL) ) ) ), ignore_function_env = TRUE, ignore_formula_env = TRUE ) }) test_that("updating tfrmt - updating group vars - footnote_plan",{ tfrmt1 <- tfrmt( group = c(group1, group2), footnote_plan = footnote_plan( footnote_structure( footnote_text = "footnote 2", group_val = list(group2 = "value"), column_val = "column value", label_val = "label value" ), footnote_structure( footnote_text = "footnote 3", group_val = list(group1 = "value", group2 = "value"), column_val = "column value", label_val = "label value" ), marks = "standard" ) ) tfrmt2 <- tfrmt1 %>% update_group(New_Group = group1) expect_equal( tfrmt2, tfrmt( group = c(New_Group, group2), footnote_plan = footnote_plan( footnote_structure( footnote_text = "footnote 2", group_val = list(group2 = "value"), column_val = "column value", label_val = "label value" ), footnote_structure( footnote_text = "footnote 3", group_val = list(New_Group = "value", group2 = "value"), column_val = "column value", label_val = "label value" ), marks = "standard" ) ), ignore_function_env = TRUE, ignore_formula_env = TRUE ) tfrmt3 <- tfrmt1 %>% update_group( New_Group = group1, `best group` = group2 ) expect_equal( tfrmt3, tfrmt( group = c("New_Group", "best group"), footnote_plan = footnote_plan( footnote_structure( footnote_text = "footnote 2", group_val = list(`best group` = "value"), column_val = "column value", label_val = "label value" ), footnote_structure( footnote_text = "footnote 3", group_val = list(New_Group = "value", `best group` = "value"), column_val = "column value", label_val = "label value" ), marks = "standard" ) ), ignore_function_env = TRUE, ignore_formula_env = TRUE ) })