test_that("data frames are coerced to tibble by default", {
expect_identical(
recompose(data.frame(x = 1)),
tibble(x = 1)
)
})
test_that("can coerce to base data frame", {
expect_identical(
recompose(tibble(x = 1), composition = "data.frame"),
data.frame(x = 1)
)
})
test_that("can coerce to matrix", {
expect_identical(
recompose(data.frame(x = 1), composition = "matrix"),
matrix(1, dimnames = list(NULL, "x"))
)
})
test_that("can coerce to sparse matrix", {
skip_if_not_installed("Matrix")
expect_identical(
recompose(data.frame(x = 1:2), composition = "dgCMatrix"),
Matrix::Matrix(1:2, dimnames = list(NULL, "x"), sparse = TRUE)
)
})
test_that("non-numeric columns are allowed with tibble/data.frame output", {
df <- data.frame(x = 1, y = "a", z = "b")
expect_identical(recompose(df), tibble::as_tibble(df))
expect_identical(recompose(df, composition = "data.frame"), df)
})
test_that("columns must be numeric when coercing to matrix", {
df <- data.frame(x = 1, y = "a", z = "b")
expect_snapshot(error = TRUE, {
recompose(df, composition = "matrix")
})
})
test_that("columns must be numeric when coercing to sparse matrix", {
skip_if_not_installed("Matrix")
df <- data.frame(x = 1, y = "a", z = "b")
expect_snapshot(error = TRUE, {
recompose(df, composition = "dgCMatrix")
})
})
test_that("checks for data frame input", {
expect_snapshot(error = TRUE, {
recompose(1)
})
})
test_that("dots must be empty", {
expect_snapshot(error = TRUE, {
recompose(data.frame(), 1)
})
})
test_that("validates `composition`", {
expect_snapshot(error = TRUE, {
recompose(data.frame(), composition = "foo")
})
expect_snapshot(error = TRUE, {
recompose(data.frame(), composition = 1)
})
})
test_that("sparse tibble can be turned to tibble", {
skip_if_not_installed("modeldata")
withr::local_options("sparsevctrs.verbose_materialize" = 3)
hotel_data <- sparse_hotel_rates()
hotel_data <- sparsevctrs::coerce_to_sparse_tibble(hotel_data)
res <- recompose(hotel_data, composition = "tibble")
expect_identical(
res,
hotel_data
)
expect_true(is_sparse_tibble(res))
})
test_that("sparse tibble can be turned to data.frame", {
skip_if_not_installed("modeldata")
withr::local_options("sparsevctrs.verbose_materialize" = 3)
hotel_data <- sparse_hotel_rates()
hotel_data <- sparsevctrs::coerce_to_sparse_tibble(hotel_data)
res <- recompose(hotel_data, composition = "data.frame")
expect_identical(
res,
as.data.frame(hotel_data)
)
expect_true(is_sparse_tibble(res))
})
test_that("sparse tibble can be turned to matrix", {
skip_if_not_installed("modeldata")
hotel_data <- sparse_hotel_rates()
hotel_data <- sparsevctrs::coerce_to_sparse_tibble(hotel_data)
hotel_data <- hotel_data[1:10, 1:10]
res <- recompose(hotel_data, composition = "matrix")
expect_identical(
res,
as.matrix(hotel_data)
)
})
test_that("sparse tibble can be turned to dgCMatrix", {
skip_if_not_installed("modeldata")
withr::local_options("sparsevctrs.verbose_materialize" = 3)
hotel_mat <- sparse_hotel_rates()
hotel_data <- sparsevctrs::coerce_to_sparse_tibble(hotel_mat)
res <- recompose(hotel_data, composition = "dgCMatrix")
rownames(res) <- NULL
expect_identical(
res,
hotel_mat
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.