test_that("can split empty vector", {
out <- vec_split(integer(), character())
expect_s3_class(out, "data.frame")
expect_equal(out$key, character())
expect_equal(out$val, list())
})
test_that("split data frame with data frame", {
df <- data.frame(x = c(1, 1, 2), y = c(1, 1, 1))
out <- vec_split(df, df)
expect_s3_class(out, "data.frame")
expect_equal(out$key, data.frame(x = c(1, 2), y = c(1, 1)))
expect_equal(out$val, list(
data.frame(x = c(1, 1), y = c(1, 1)),
data.frame(x = 2, y = 1)
))
})
test_that("x and by must be same size", {
expect_error(
vec_split(1:3, 1:2),
"same size"
)
})
test_that("split takes the equality proxy (#375)", {
local_comparable_tuple()
x <- tuple(c(1, 2, 1), 1:3)
expect_identical(nrow(vec_split(1:3, x)), 2L)
})
test_that("split works with different encodings", {
encs <- encodings()
expect_identical(nrow(vec_split(1:3, encs)), 1L)
})
test_that("`key` and `value` retain names", {
x <- c(a = 1, b = 2, c = 1, a = 1)
split <- vec_split(x, x)
expect_identical(split$key, c(a = 1, b = 2))
expect_identical(split$val[[1]], c(a = 1, c = 1, a = 1))
expect_identical(split$val[[2]], c(b = 2))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.