test_that("can modify leaves", {
expect_equal(
modify_tree(c(1, 1, 1), leaf = ~ .x + 9),
c(10, 10, 10)
)
expect_equal(
modify_tree(list(1, list(1, list(1))), leaf = ~ .x + 9),
list(10, list(10, list(10)))
)
})
test_that("can modify nodes", {
expect_equal(
modify_tree(list(1, list(2, list(3))), post = list_flatten),
list(1, 2, 3)
)
})
test_that("default doesn't recurse into data frames, but can customise", {
local_options(stringsAsFactors = FALSE)
x <- list(data.frame(x = 1), data.frame(y = 2))
expect_equal(
modify_tree(x, leaf = class),
list("data.frame", "data.frame")
)
expect_equal(
modify_tree(x, leaf = class, is_node = is.list),
list(data.frame(x = "numeric"), data.frame(y = "numeric"))
)
})
test_that("leaf() is applied to non-node input", {
expect_equal(modify_tree(1:3, leaf = identity), 1:3)
})
test_that("validates inputs", {
expect_snapshot(error = TRUE, {
modify_tree(list(), is_node = ~ 1)
modify_tree(list(), is_node = 1)
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.