source("utils.R")
get_wml_node <- function(x){
xml_ <- to_wml(x)
read_xml( wml_str(xml_) )
}
test_that("run_autonum wml", {
z <- expand.grid(
pre_label = c("Table ", "Tableau "),
post_label = c(": ", " : "),
stringsAsFactors = FALSE
)
z$bkm <- c("bkm1", "bkm2", "bkm3", "null")
z$bkm_all <- rep(c(TRUE, FALSE), 2)
z$seq_id <- c("tab", "tbl", "fig", "plt")
runs <- mapply(.pre = z$pre_label,
.post = z$post_label,
.bkm = z$bkm,
.bkm_all = z$bkm_all,
.seq_id = z$seq_id,
FUN = function(.pre, .post, .bkm, .bkm_all, .seq_id) {
z <- run_autonum(
pre_label = .pre,
seq_id = .seq_id,
post_label = .post,
bkm = if (.bkm %in% "null") NULL else .bkm,
bkm_all = .bkm_all)
to_wml(z)
}, SIMPLIFY = FALSE,
USE.NAMES = FALSE)
bkm_pattern <- ""
expect_match(object = runs[[1]], regexp = sprintf(bkm_pattern, z$bkm[1]))
expect_match(object = runs[[2]], regexp = sprintf(bkm_pattern, z$bkm[2]))
expect_match(object = runs[[3]], regexp = sprintf(bkm_pattern, z$bkm[3]))
expect_no_match(object = runs[[4]], regexp = sprintf(bkm_pattern, z$bkm[4]))
expect_match(object = runs[[3]], regexp = sprintf(paste0("^", bkm_pattern), z$bkm[3]))
expect_no_match(object = runs[[4]], regexp = sprintf(paste0("^", bkm_pattern), z$bkm[4]))
node <- read_xml(wml_str(runs[[1]]))
expect_equal(xml_text(xml_child(node, "w:r")), "Table ")
expect_equal(xml_text(xml_child(node, xml_length(node))), ": ")
node <- read_xml(wml_str(runs[[4]]))
expect_equal(xml_text(xml_child(node, "w:r")), "Tableau ")
expect_equal(xml_text(xml_child(node, xml_length(node))), " : ")
seq_pattern <- "SEQ %s"
expect_match(object = runs[[1]], regexp = sprintf(seq_pattern, z$seq_id[1]))
expect_match(object = runs[[2]], regexp = sprintf(seq_pattern, z$seq_id[2]))
expect_match(object = runs[[3]], regexp = sprintf(seq_pattern, z$seq_id[3]))
expect_match(object = runs[[4]], regexp = sprintf(seq_pattern, z$seq_id[4]))
z <- run_autonum(seq_id = "tbl", start_at = 2, tnd = 2, tns = ".")
node <- read_xml(wml_str(to_wml(z)))
expect_equal(xml_text(node), "Table STYLEREF 2 \\r.SEQ tbl \\* Arabic \\r 2: ")
z <- run_autonum(seq_id = "tbl", tnd = 1, tns = "-")
node <- read_xml(wml_str(to_wml(z)))
expect_equal(xml_text(node), "Table STYLEREF 1 \\r-SEQ tbl \\* Arabic: ")
})