Nothing
test_that("dm_add_tbl() works", {
local_options(lifecycle_verbosity = "quiet")
# is a table added?
expect_identical(
length(dm_get_tables(dm_add_tbl(dm_for_filter(), data_card_1()))),
7L
)
# can I retrieve the tibble under its old name?
expect_equivalent_tbl(
dm_add_tbl(dm_for_filter(), data_card_1())[["data_card_1()"]],
data_card_1()
)
# can I retrieve the tibble under a new name?
expect_equivalent_tbl(
dm_add_tbl(dm_for_filter(), test = data_card_1())[["test"]],
data_card_1()
)
# use special names with :=
expect_identical(
names(dm_add_tbl(dm_for_filter(), dm := data_card_1(), repair := data_card_2())),
c(names(dm_for_filter()), "dm", "repair")
)
# we accept even weird table names, as long as they are unique
expect_equivalent_tbl(
dm_add_tbl(dm_for_filter(), . = data_card_1())[["."]],
data_card_1()
)
# do I avoid the warning when piping the table but setting the name?
expect_silent(
expect_equivalent_tbl(
dm_for_filter() %>% dm_add_tbl(new_name = data_card_1()) %>% pull_tbl(new_name),
data_card_1()
)
)
# adding more than 1 table:
# 1. Is the resulting number of tables correct?
expect_identical(
length(dm_get_tables(dm_add_tbl(dm_for_filter(), data_card_1(), data_card_2()))),
8L
)
# 2. Is the resulting order of the tables correct?
expect_identical(
src_tbls_impl(dm_add_tbl(dm_for_filter(), data_card_1(), data_card_2())),
c(src_tbls_impl(dm_for_filter()), "data_card_1()", "data_card_2()")
)
# are in the default case (`repair = 'unique'`) the tables renamed (old table AND new table) according to "unique" default setting
expect_identical(
dm_add_tbl(dm_for_filter(), tf_1 = data_card_1(), quiet = TRUE) %>% src_tbls_impl(),
c("tf_1...1", "tf_2", "tf_3", "tf_4", "tf_5", "tf_6", "tf_1...7")
)
expect_name_repair_message(
expect_equivalent_dm(
dm_add_tbl(dm_for_filter(), tf_1 = data_card_1(), repair = "unique"),
dm_for_filter() %>%
dm_rename_tbl(tf_1...1 = tf_1) %>%
dm_add_tbl(tf_1...7 = data_card_1())
)
)
# can I use dm_select_tbl(), selecting among others the new table?
expect_silent(
dm_add_tbl(dm_for_filter(), tf_7_new = tf_7()) %>% dm_select_tbl(tf_1, tf_7_new, everything())
)
# error in case table srcs don't match
expect_dm_error(
dm_add_tbl(dm_for_filter(), data_card_1_duckdb()),
"not_same_src"
)
# adding tables to an empty `dm` works for all sources
expect_equivalent_tbl(
dm_add_tbl(dm(), test = data_card_1_duckdb())$test,
data_card_1()
)
})
test_that("dm_add_tbl() snapshots", {
local_options(lifecycle_verbosity = "warning")
# Is an error thrown in case I try to give the new table an old table's name if `repair = "check_unique"`?
expect_snapshot(error = TRUE, {
dm_add_tbl(dm_for_filter(), tf_1 = data_card_1(), repair = "check_unique")
})
expect_snapshot({
dm_add_tbl(dm_for_flatten(), res_flat = result_from_flatten()) %>% dm_paste(options = c("select", "keys"))
})
})
test_that("dm_rm_tbl() works", {
local_options(lifecycle_verbosity = "quiet")
# removes a table
expect_equivalent_dm(
dm_rm_tbl(dm_for_filter_w_cycle(), tf_7),
dm_for_filter()
)
# removes more than one table
expect_equivalent_dm(
dm_rm_tbl(dm_for_filter_w_cycle(), tf_7, tf_5, tf_3),
dm_select_tbl(dm_for_filter(), tf_1, tf_2, tf_4, tf_6)
)
# fails when table name is wrong
expect_error(
dm_rm_tbl(dm_for_filter(), tf_9),
class = "vctrs_error_subscript"
)
# select-helpers work for 'dm_rm_tbl()'
expect_identical(
dm_rm_tbl(dm_for_disambiguate(), everything()),
empty_dm()
)
# corner case: not removing any table
expect_identical(
dm_rm_tbl(dm_for_disambiguate()),
dm_for_disambiguate()
)
})
test_that("dm_rm_tbl() snapshot", {
local_options(lifecycle_verbosity = "warning")
expect_snapshot({
dm_rm_tbl(dm_for_flatten(), dim_1) %>% dm_paste(options = c("select", "keys"))
dm_rm_tbl(dm_for_flatten(), fact) %>% dm_paste(options = c("select", "keys"))
})
})
test_that("dm_mutate_tbl() works", {
expect_equivalent_dm(
dm_for_filter_w_cycle() %>%
dm_mutate_tbl(
tf_1 = dm_for_filter_w_cycle()$tf_1,
tf_7 = dm_for_filter_w_cycle()$tf_7 %>%
filter(0L == 1L)
),
dm_for_filter_w_cycle() %>%
dm_zoom_to(tf_7) %>%
filter(0L == 1L) %>%
dm_update_zoomed()
)
# Table doesn't exist yet
expect_error(
dm_for_filter_w_cycle() %>%
dm_mutate_tbl(
tf_99 = dm_for_filter_w_cycle()$tf_7
)
)
# Wrong column structure
expect_error(
dm_for_filter_w_cycle() %>%
dm_mutate_tbl(
tf_1 = dm_for_filter_w_cycle()$tf_7
)
)
})
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.