Nothing
test_that("validate_data", {
# Test 1: data must be a data frame
expect_error(
validate_data(1, "a", "b"),
"must be a data frame"
)
expect_error(
validate_data(list(a = 1), "a", "b"),
"must be a data frame"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 1), "a", "b")
)
# Test 2: data must have one or more rows
expect_error(
validate_data(data.frame(a = numeric(0), b = character(0)), "a", "b"),
"must have one or more rows"
)
# Test 3: data must have two or more columns
expect_error(
validate_data(
data.frame(a = 1),
"a",
"b"
),
"must have two or more columns"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b")
)
# Test 4: layout must be length 1 and character
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", layout = 1),
"must be character"
)
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", layout = c("a", "b")),
"must be length 1"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", layout = "::::a")
)
# Test 5: layout must begin with at least three or more repetitions of ":"
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", layout = "a"),
"must begin with at least three or more repetitions of \":\""
)
# Test 6: heading_levels must be numeric
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = "a"),
"must be numeric"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = 1)
)
# Test 7: heading_levels must be length 1 or greater
expect_error(
validate_data(
data.frame(a = 1, b = 2),
"a",
"b",
heading_levels = numeric(0)
),
"must be length 1 or greater"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = 1)
)
# Test 8: heading_levels must not include NaN
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = NaN),
"must not include NaN"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = 1)
)
# Test 9: heading_levels must not be infinite
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = Inf),
"must not be infinite"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = 1)
)
# Test 10: tabset_vars must be of length 1 or more
expect_error(
validate_data(data.frame(a = 1, b = 2), NULL, "b"),
"must be of length 1 or more"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b")
)
# Test 11: tabset_vars must not contain list columns
expect_error(
validate_data(tibble::tibble(a = list(1), b = 2), "a", "b"),
"must have one of the following classes"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b")
)
# Test 12: heading_levels and tabset_vars must have the same length
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = c(1, 2)),
"must be the same"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b", heading_levels = 1)
)
# Test 13: output_vars must be of length 1 or more
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", NULL),
"must be of length 1 or more"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b")
)
# Test 14: there must not be variables that are included in
# both tabset_vars and output_vars
expect_error(
validate_data(data.frame(a = 1, b = 2), "a", "a"),
" must not be variables that are included in both"
)
expect_no_error(
validate_data(data.frame(a = 1, b = 2), "a", "b")
)
})
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.