Nothing
test_that("unique keys", {
expect_snapshot({
nyc_1_uk <- dm_add_uk(
dm_nycflights_small(),
flights,
everything()
)
# add 1 UK
nyc_1_uk %>%
dm_get_all_uks()
# add 2 UK to same table and 1 to another table
nyc_1_uk %>%
dm_add_uk(
flights,
c(origin, dest, time_hour)
) %>%
dm_add_uk(
planes,
c(year, manufacturer, model)
) %>%
dm_get_all_uks()
# add 2 UK to same table and 1 to another table and remove 1 of the 2 for the first table
nyc_1_uk %>%
dm_add_uk(
flights,
c(origin, dest, time_hour)
) %>%
dm_add_uk(
planes,
c(year, manufacturer, model)
) %>%
dm_rm_uk(flights, c(origin, dest, time_hour)) %>%
dm_get_all_uks()
# add 2 UK to same table and 1 to another table and remove 1 of the 2 for
# the first table using the tidyselect function used to create the UK
nyc_1_uk %>%
dm_add_uk(
flights,
c(origin, dest, time_hour)
) %>%
dm_add_uk(
planes,
c(year, manufacturer, model)
) %>%
dm_rm_uk(flights, everything()) %>%
dm_get_all_uks()
# dm_rm_uk()
nyc_1_uk %>%
dm_rm_uk() %>%
dm_get_all_uks()
nyc_1_uk %>%
dm_rm_uk(flights) %>%
dm_get_all_uks()
nyc_1_uk %>%
dm_rm_uk(flights, everything()) %>%
dm_get_all_uks()
# test for code generation:
# add 2 UK to same table and 1 of length > 1 to another table and remove all UKs
nyc_1_uk %>%
dm_add_uk(
flights,
c(origin, dest, time_hour)
) %>%
dm_add_uk(
planes,
c(year, manufacturer, model)
) %>%
dm_rm_uk() %>%
dm_get_all_uks()
# test for code generation:
# add 2 UK to same table and 1 of length 1 to another table and remove all UKs
nyc_1_uk %>%
dm_add_uk(
flights,
c(origin, dest, time_hour)
) %>%
dm_add_uk(
planes,
manufacturer
) %>%
dm_rm_uk() %>%
dm_get_all_uks()
# dm_examine_constraints()
dm_examine_constraints(
dm_nycflights_small() %>%
dm_add_uk(
planes,
c(year, manufacturer, model)
)
)
dm_add_fk(
dm_nycflights_small(),
flights,
time_hour,
weather,
time_hour
) %>%
dm_get_all_uks()
dm_add_fk(
dm_nycflights_small(),
flights,
time_hour,
weather,
time_hour
) %>%
dm_add_uk(weather, time_hour) %>%
dm_get_all_uks()
# key tracking needs to work also for UKs
dm_rename(dm_for_filter(), tf_6, p = n) %>% dm_get_all_uks()
dm_rename(dm_for_filter(), tf_6, p = n) %>% dm_get_all_fks()
dm_select(dm_for_filter(), tf_6, -n) %>% dm_get_all_uks()
dm_select(dm_for_filter(), tf_6, -n) %>% dm_get_all_fks()
# test table arg for dm_get_all_uks()
nyc_1_uk %>%
dm_get_all_uks(flights)
nyc_1_uk %>%
dm_get_all_uks("airports")
nyc_1_uk %>%
dm_get_all_uks(c(airports, weather, flights, airlines))
# test tidyselect functions
nyc_1_uk %>%
dm_get_all_uks(starts_with("a"))
nyc_1_uk %>%
dm_get_all_uks(everything())
})
expect_snapshot_error(
# failing check upon addition of UK
dm_add_uk(
dm_nycflights_small(),
planes,
c(year, manufacturer, model),
check = TRUE
),
class = dm_error("not_unique_key")
)
expect_snapshot_error(
# trying to add a UK for which a PK already exists
dm_add_uk(
dm_nycflights_small(),
airlines,
carrier,
),
class = dm_error("no_uk_if_pk")
)
expect_snapshot_error(
# trying to add a UK for which a PK already exists
dm_add_uk(
nyc_1_uk,
flights,
everything()
),
class = dm_error("no_uk_if_pk")
)
})
test_that("dm_get_all_uks() with table arg fails nicely", {
expect_snapshot_error(
# trying to request a table not part of the dm
nyc_1_uk %>%
dm_get_all_uks(timetable)
)
expect_snapshot_error(
# trying to request 2 tables that are not part of the dm and a few others
nyc_1_uk %>%
dm_get_all_uks(c(timetable, weather, flights, tabletime))
)
})
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.