test_that("names preserved if outer name is missing", {
x <- c("a", "z", "")
expect_equal(outer_names(x, NULL, 3), x)
expect_equal(outer_names(x, "", 3), x)
expect_equal(outer_names(x, na_chr, 3), x)
})
test_that("outer name vectorised if needed", {
expect_equal(outer_names(NULL, "x", 1L), c("x"))
expect_equal(outer_names(NULL, "x", 2L), c("x1", "x2"))
})
test_that("outer and inner names are combined", {
expect_equal(outer_names("x", "y", 1), c("y..x"))
})
test_that("options are created", {
expect_identical(
unclass(new_opts(c("a", "c"), letters[1:4])),
c(a = TRUE, b = FALSE, c = TRUE, d = FALSE)
)
})
test_that("can't supply unknown option", {
expect_error(
new_opts(c("a", "foo"), letters[1:4]),
"Argument must be one of \"a\", \"b\", \"c\" or \"d\""
)
expect_error(
new_opts(c("a", "foo"), letters[1:4], arg = "foo"),
"`foo` must be one of \"a\", \"b\", \"c\" or \"d\""
)
})
test_that("`has_dim()` doesn't partial match on the `dim` attribute (#948)", {
x <- structure(1, dimB = 1)
expect_false(has_dim(x))
})
test_that("df_has_base_subset() detects `[` methods", {
expect_true(df_has_base_subset(foobar(mtcars)))
out <- with_methods(
`[.vctrs_foobar` = function(x, i, ...) structure(NextMethod(), dispatched = TRUE),
df_has_base_subset(foobar(mtcars))
)
expect_false(out)
})
test_that("vec_common_suffix() finds common suffix", {
x <- c("foo", "bar", "baz")
y <- c("quux", "foo", "hop", "baz")
expect_identical(vec_common_suffix(x, y), "baz")
x <- c("foo", "bar", "baz")
y <- c("quux", "foo", "bar", "baz")
expect_identical(vec_common_suffix(x, y), x)
x <- letters
y <- chr()
expect_identical(vec_common_suffix(x, y), chr())
x <- data.frame(x = 1:3, y = c("foo", "bar", "baz"))
y <- data.frame(x = 0:3, y = c("foo", "hop", "bar", "baz"))
exp <- data.frame(x = 2:3, y = c("bar", "baz"))
expect_identical(vec_common_suffix(x, y), exp)
})
test_that("fast_c() concatenates", {
expect_identical(fast_c(character(), "foo"), "foo")
expect_identical(fast_c("foo", character()), "foo")
expect_identical(fast_c("foo", c("bar", "baz")), c("foo", "bar", "baz"))
expect_identical(fast_c(c("bar", "baz"), "foo"), c("bar", "baz", "foo"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.