test_that("recurse() can handle missing objects", {
data <- substitute(list(a = A), list(A = quote(expr = )))
expect_no_error(recurse(data, function(node) force(node)))
})
test_that("recurse() can handle lists", {
data <- list(
list(a = 1, b = 2),
list(
list(c = 3, d = list(4))
)
)
items <- list()
recurse(data, function(el) {
if (is.numeric(el))
items[[length(items) + 1L]] <<- el
})
expect_equal(items, list(1, 2, 3, 4))
items <- list()
recurse(data, function(el, ignored) {
if (is.numeric(el))
items[[length(items) + 1L]] <<- el
}, ignored = 42)
expect_equal(items, list(1, 2, 3, 4))
})
test_that("recurse() can handle dots", {
counter <- 0L
recurse(list(1, list(2, list(3, list(4, list(5))))), function(node) {
if (is.list(node))
counter <<- counter + 1L
})
expect_equal(counter, 5L)
counter <- 0L
recurse(list(1, list(2, list(3, list(4, list(5))))), function(node, extra) {
expect_equal(extra, 42)
if (is.list(node))
counter <<- counter + 1L
}, extra = 42)
expect_equal(counter, 5L)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.