Nothing
testthat::test_that("fapply maps flexseq values in order", {
x <- as_flexseq(1:5)
y <- fapply(x, function(v) v * 10)
testthat::expect_s3_class(y, "flexseq")
testthat::expect_identical(as.integer(node_measure(y, ".size")), 5L)
testthat::expect_identical(
lapply(.ft_to_list(y), .ft_strip_name),
as.list(c(10, 20, 30, 40, 50))
)
})
testthat::test_that("fapply preserves element names for named flexseq", {
x <- as_flexseq(setNames(as.list(1:4), c("a", "b", "c", "d")))
y <- fapply(x, function(v) v + 1L)
nms <- .ft_collect_names(y)
testthat::expect_identical(nms, c("a", "b", "c", "d"))
testthat::expect_identical(y[["c"]], 4L)
})
testthat::test_that("fapply preserves user monoids for flexseq", {
sum_m <- measure_monoid(`+`, 0, as.numeric)
x <- add_monoids(as_flexseq(1:4), list(sum = sum_m))
y <- fapply(x, function(v) v * 2)
ms <- attr(y, "monoids", exact = TRUE)
testthat::expect_true(!is.null(ms[[".size"]]))
testthat::expect_true(!is.null(ms[[".named_count"]]))
testthat::expect_true(!is.null(ms[["sum"]]))
testthat::expect_identical(node_measure(y, "sum"), 20)
testthat::expect_identical(as.integer(node_measure(y, ".size")), 4L)
testthat::expect_false(identical(node_measure(x, "sum"), node_measure(y, "sum")))
testthat::expect_identical(node_measure(x, "sum"), 10)
})
testthat::test_that("fapply can drop user monoids for flexseq", {
sum_m <- measure_monoid(`+`, 0, as.numeric)
x <- add_monoids(as_flexseq(1:4), list(sum = sum_m))
y <- fapply(x, function(v) v * 2, preserve_custom_monoids = FALSE)
ms <- attr(y, "monoids", exact = TRUE)
testthat::expect_true(!is.null(ms[[".size"]]))
testthat::expect_true(!is.null(ms[[".named_count"]]))
testthat::expect_true(is.null(ms[["sum"]]))
testthat::expect_error(node_measure(y, "sum"), "Missing cached measure")
testthat::expect_identical(as.integer(node_measure(y, ".size")), 4L)
})
testthat::test_that("fapply validates flexseq inputs", {
x <- as_flexseq(1:3)
testthat::expect_error(fapply.flexseq(list(1, 2, 3), FUN = identity), "`x` must be a flexseq")
testthat::expect_error(fapply(x, 1), "`FUN` must be a function")
testthat::expect_error(fapply(x, identity, preserve_custom_monoids = NA), "`preserve_custom_monoids` must be TRUE or FALSE")
})
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.