test_that("custom alignments work", { df <- data.frame(label = c("boy", "girl"), name = c("Bob", "Lily"), age = c(12, 15)) # `alignments` must be a list of named lists expect_error(gentlg(huxme = df, print.hux = FALSE, alignments = 1), "`alignments` must be a list") expect_error(gentlg(huxme = df, print.hux = FALSE, alignments = list(1)), "Each item of `alignments` must be a list") # Apply alignments to one data frame hux_table <- gentlg( huxme = df, print.hux = FALSE, alignments = list( list( row = 1:4, col = 2, value = "left" ), # Column `name` to the left list(row = 3, col = 3, value = "right") # Cell `12` to the right ) )[[ 1 ]] align_property <- huxtable::align(hux_table) expect_equal(align_property[4, 2], "left") expect_equal(align_property[3, 3], "right") # Apply alignments to two data frames hux_tables <- gentlg( huxme = list(df, df), print.hux = FALSE, alignments = list( # Column `name` to the left for the first data frame list(list(row = 1:4, col = 2, value = "left")), # Cell `12` to the right for the second data frame list(list(row = 3, col = 3, value = "right")) ) ) align_property_1 <- huxtable::align(hux_tables[[1]]) expect_equal(align_property_1[4, 2], "left") expect_equal(align_property_1[3, 3], "center") align_property_2 <- huxtable::align(hux_tables[[2]]) expect_equal(align_property_2[4, 2], "center") expect_equal(align_property_2[3, 3], "right") })