Nothing
test_that("Textshaping follows UNICODE Bidi conventions", {
# First test from the unicode test file
test_string <- gsub(
" ",
"\\u",
"' 05D0 05D1 0028 05D2 05D3 005B 0026 0065 0066 005D 002E 0029 0067 0068'",
fixed = TRUE
)
test_string <- eval(parse(text = test_string))
shape <- shape_text(test_string, direction = "ltr")
expect_equal(
shape$shape$glyph,
c(2L, 1L, 3L, 5L, 4L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L)
)
skip_on_cran()
skip_on_ci()
# Change to FALSE to run ALL tests locally
skip_if(TRUE, "Skipping time consuming UNICODE Bidi tests")
test_url <- "https://www.unicode.org/Public/UCD/latest/ucd/BidiCharacterTest.txt"
tests <- read.csv2(test_url, header = FALSE, comment.char = "#")
names(tests) <- c(
"unicode",
"ltr_set",
"ltr_detected",
"bidi_embedding",
"visual_order"
)
tests$visual_order <- lapply(
strsplit(tests$visual_order, " ", TRUE),
as.integer
)
for (i in seq_len(nrow(tests))[-1]) {
test_string <- paste0(
"\"\\u",
gsub(" ", "\\u", tests$unicode[i], fixed = TRUE),
"\""
)
test_string <- eval(parse(text = test_string))
dir <- c("ltr", "rtl", "auto")[tests$ltr_set[i] + 1]
shape <- shape_text(test_string, direction = dir)
expect_equal(
shape$metrics$ltr,
tests$ltr_detected[i] == 0,
label = paste0("calculated direction [test ", i, "]")
)
true_ordering <- tests$visual_order[[i]] + 1L
# We do the below to make sure that any ligature substitutions doesn't affect the
# changes
true_ordering <- intersect(true_ordering, shape$shape$glyph)
calc_ordering <- intersect(shape$shape$glyph, true_ordering)
expect_equal(
calc_ordering,
true_ordering,
label = paste0("calculated visual order [test ", i, "]")
)
}
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.