test_that("long format corresponds to expand.grid output", {
skip_if_not_installed("tibble")
local_options(lifecycle_verbosity = "quiet")
x <- list(a = 1:3, b = 4:9)
out1 <- cross_df(x)
out2 <- expand.grid(x, KEEP.OUT.ATTRS = FALSE) %>% tibble::as_tibble()
expect_equal(out1, out2)
})
test_that("filtering works", {
local_options(lifecycle_verbosity = "quiet")
filter <- function(x, y) x >= y
out <- cross2(1:3, 1:3, .filter = filter)
expect_equal(out, list(list(1, 2), list(1, 3), list(2, 3)))
})
test_that("filtering requires a predicate function", {
local_options(lifecycle_verbosity = "quiet")
expect_snapshot(cross2(1:3, 1:3, .filter = ~ c(TRUE, TRUE)), error = TRUE)
})
test_that("filtering fails when filter function doesn't return a logical", {
local_options(lifecycle_verbosity = "quiet")
filter <- function(x, y, z) x + y + z
expect_error(cross3(1:3, 1:3, 1:3, .filter = filter))
})
test_that("works with empty input", {
local_options(lifecycle_verbosity = "quiet")
expect_equal(cross(list()), list())
expect_equal(cross(NULL), NULL)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.