local_edition(2)
skip_if_not_installed("dplyr")
test_that("select, rename and relocate", {
ht <- hux(a = 1:2, b = 1:2, c = 1:2, d = 1:2)
bold(ht)[1, ] <- TRUE
ht2 <- dplyr::select(ht, b:c)
expect_equivalent(bold(ht2), matrix(c(TRUE, FALSE, TRUE, FALSE), 2, 2))
expect_identical(ht2, ht[, 2:3])
ht3 <- dplyr::rename(ht, jim = d, bob = c)
expect_equivalent(colnames(ht3), c("a", "b", "bob", "jim"))
expect_equivalent(bold(ht3), bold(ht))
if (packageVersion("dplyr") > "0.8.5") {
ht4 <- dplyr::relocate(ht, b , a, .after = d)
expect_identical(ht4, ht[c("c", "d", "b", "a")])
ht5 <- dplyr::relocate(ht, b , a, .before = d)
expect_identical(ht5, ht[c("c", "b", "a", "d")])
}
})
test_that("slice, filter, arrange and pull work", {
ht <- hux(a = 1:4, b = c(1, 3, 4, 2), add_colnames = FALSE)
row_height(ht) <- c(.4, .2, .1, .3)
ht2 <- dplyr::slice(ht, c(4, 2))
expect_identical(ht2, ht[c(4, 2), ])
ht3 <- dplyr::arrange(ht, b)
expect_identical(ht3, ht[c(1, 4, 2, 3), ])
ht4 <- dplyr::filter(ht, a <= 2, b <= 2)
expect_identical(ht4, ht[1, ])
vec <- dplyr::pull(ht, a)
expect_identical(vec, ht$a)
})
test_that("mutate, mutate_ and transmute work", {
ht <- hux(a = 1:3, b = 1:3)
bold(ht)[1, ] <- TRUE
ht2 <- dplyr::mutate(ht, x = a + b)
expect_equivalent(ht2$x, c(2, 4, 6))
expect_equivalent(bold(ht2)[, 3], c(TRUE, FALSE, FALSE))
ht3 <- dplyr::mutate(ht, x = a + b, copy_cell_props = FALSE)
expect_equivalent(bold(ht3)[, 3], c(FALSE, FALSE, FALSE))
expect_identical(names(ht3), c("a", "b", "x"))
ht4 <- dplyr::transmute(ht, x = a + b, a = a + b)
expect_equivalent(ht4$x, c(2, 4, 6))
expect_equivalent(bold(ht4)[, "a"], c(TRUE, FALSE, FALSE))
expect_silent(ht5 <- dplyr::mutate(ht, a = NULL))
expect_equivalent(dim(font(ht5)), c(3, 1))
ht6 <- dplyr::mutate_(ht, .dots = list(x = quote(a + b)))
expect_equivalent(ht6$x, c(2, 4, 6))
expect_equivalent(bold(ht6)[, 3], c(TRUE, FALSE, FALSE))
ht7 <- dplyr::mutate_(ht, .dots = list(x = quote(a + b), copy_cell_props = FALSE))
expect_equivalent(ht7$x, c(2, 4, 6))
expect_equivalent(bold(ht7)[, 3], c(FALSE, FALSE, FALSE))
expect_identical(names(ht7), c("a", "b", "x"))
})
test_that("set_* works with magrittr pipe", {
ht_orig <- hux(a = 1:2, b = 1:2)
expect_silent(ht2 <- ht_orig %>% set_font("times"))
expect_silent(ht3 <- ht_orig %>% set_all_borders(1))
expect_equivalent(font(ht2), matrix("times", 2, 2))
expect_equivalent(brdr_thickness(top_border(ht3)), matrix(1, 2, 2))
})
test_that("dplyr select helpers can be used in set_* functions", {
suppressWarnings(library(tidyselect))
ht <- hux(a = 1:5, big = 1:5, bog = 1:5, bin = 1:5)
expect_silent(ht2 <- set_bold(ht, everywhere, starts_with("b"), TRUE))
expect_equivalent(bold(ht2)[, -1], matrix(TRUE, 5, 3))
expect_equivalent(bold(ht2)[, 1], rep(FALSE, 5))
expect_silent(ht3 <- set_bold(ht, everywhere, ends_with("g"), TRUE))
expect_equivalent(bold(ht3)[, 2:3], matrix(TRUE, 5, 2))
expect_equivalent(bold(ht3)[, c(1, 4)], matrix(FALSE, 5, 2))
expect_silent(ht4 <- set_bold(ht, everywhere, contains("i"), TRUE))
expect_equivalent(bold(ht4)[, c(2, 4)], matrix(TRUE, 5, 2))
expect_equivalent(bold(ht4)[, c(1, 3)], matrix(FALSE, 5, 2))
expect_silent(ht5 <- set_bold(ht, everywhere, matches("b[^o]"), TRUE))
expect_equivalent(bold(ht5)[, c(2, 4)], matrix(TRUE, 5, 2))
expect_equivalent(bold(ht5)[, c(1, 3)], matrix(FALSE, 5, 2))
col_names <- c("big", "bog")
expect_silent(ht6 <- set_bold(ht, everywhere, one_of(col_names), TRUE))
expect_equivalent(bold(ht6)[, 2:3], matrix(TRUE, 5, 2))
expect_equivalent(bold(ht6)[, c(1, 4)], matrix(FALSE, 5, 2))
expect_silent(ht7 <- set_bold(ht, everywhere, last_col(), TRUE))
expect_equivalent(bold(ht7)[, 4], rep(TRUE, 5))
expect_equivalent(bold(ht7)[, 1:3], matrix(FALSE, 5, 3))
expect_silent(ht8 <- set_bold(ht, everywhere, last_col(1), TRUE))
expect_equivalent(bold(ht8)[, 3], rep(TRUE, 5))
expect_equivalent(bold(ht8)[, c(1, 2, 4)], matrix(FALSE, 5, 3))
expect_silent(ht9 <- set_bold(ht, everywhere, everything(), TRUE))
expect_equivalent(bold(ht9), matrix(TRUE, 5, 4))
ht_nr <- hux(a3 = 1:5, a2 = 1:5, a1 = 1:5, b1 = 1:5)
expect_silent(ht10 <- set_bold(ht_nr, everywhere, num_range("a", 1:2), TRUE))
expect_equivalent(bold(ht10)[, 2:3], matrix(TRUE, 5, 2))
expect_equivalent(bold(ht10)[, c(1, 4)], matrix(FALSE, 5, 2))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.