Nothing
test_that("`pack_join()` works", {
df1 <- tibble(col1 = 1:2, key = letters[1:2])
df2 <- tibble(col2 = 3:4, key = letters[1:2])
df3 <- tibble(col3 = 3:4, key3 = letters[1:2])
expect_snapshot(pack_join(df1, df2))
expect_snapshot(pack_join(df1, df2, name = "packed_col"))
expect_snapshot(pack_join(df1, df3, by = c(key = "key3")))
expect_snapshot(pack_join(df1, df3, by = c(key = "key3"), keep = TRUE))
})
test_that("`pack_join()` works with remote table", {
df1 <- tibble(col1 = 1:2, key = letters[1:2])
# fails with remote table
dm_remote <- dm_for_filter_duckdb()
expect_snapshot_error(pack_join(df1, dm_remote$tf_1, by = c(col1 = "a")))
# unless copy = TRUE
expect_snapshot(pack_join(df1, dm_remote$tf_1, by = c(col1 = "a"), copy = TRUE))
# when we have conflicting columns, the column in x is overwritten silently
# consistent with dplyr::nest_join
df4 <- tibble(df5 = integer())
df5 <- tibble(col = integer())
expect_snapshot(pack_join(df4, df5, by = c(df5 = "col")))
# No conflict occurs when packing `y` before the join
df6 <- tibble(df6 = integer())
expect_snapshot(pack_join(df5, df6, by = c(col = "df6")))
})
test_that("`pack_join()` works with dm_zoomed", {
dm_nyc <- dm_nycflights13()
name_packed_df <- "packed_flights"
by_column <- "carrier"
dm_nyc_new <- dm_nyc %>%
dm_zoom_to(airlines) %>%
pack_join(flights, by = by_column, name = name_packed_df) %>%
dm_update_zoomed()
# key relations should stay the same after packing
expect_equal(get_all_keys(dm_nyc), get_all_keys(dm_nyc_new))
# the new table should have only one additional (packed) column
expect_equal(colnames(dm_nyc_new$airlines), c(colnames(dm_nyc$airlines), name_packed_df))
# the packed table should have the same number of rows as the unpacked one
expect_equal(nrow(dm_nyc_new$airlines$packed_flights), nrow(dm_nyc$flights))
# but it should have fewer columns
expect_equal(
setdiff(colnames(dm_nyc$flights), colnames(dm_nyc_new$airlines$packed_flights)),
by_column
)
})
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.