Nothing
test_that("generates expected SQL for common situations", {
db <- lazy_frame(g = 1, x = 2)
expect_snapshot(db %>% count(g))
expect_snapshot(db %>% count(g, wt = x))
expect_snapshot(db %>% count(g, sort = TRUE))
expect_snapshot(db %>% add_count(g, sort = TRUE))
expect_snapshot(db %>% group_by(g) %>% add_count())
})
test_that("preserves group of input", {
db <- lazy_frame(g = 1, x = 2)
expect_equal(db %>% count(g) %>% group_vars(), character())
expect_equal(db %>% group_by(g) %>% count() %>% group_vars(), "g")
expect_equal(db %>% group_by(g, x) %>% count() %>% group_vars(), c("g", "x"))
expect_equal(db %>% group_by(g, x) %>% add_count(g) %>% group_vars(), c("g", "x"))
expect_equal(db %>% add_count(g) %>% group_vars(), character())
})
test_that("count() does not create groups", {
# https://github.com/tidyverse/dbplyr/issues/940
db <- dbplyr::memdb_frame(
x = c(1, 1, 1, 2, 2),
y = c("a", "a", "b", "c", "c")
)
df <- db %>%
count(x, y) %>%
collect()
expect <- tibble(
x = c(1, 1, 2),
y = c("a", "b", "c"),
n = c(2L, 1L, 2L)
)
expect_equal(group_vars(df), character())
expect_identical(df, expect)
})
test_that("informs if n column already present, unless overridden", {
df1 <- lazy_frame(n = c(1, 1, 2, 2, 2))
expect_message(out <- count(df1, n), "already present")
expect_equal(colnames(out), c("n", "nn"))
# not a good idea, but supported
expect_message(out <- count(df1, n, name = "n"), NA)
expect_equal(colnames(out), "n")
expect_message(out <- count(df1, n, name = "nn"), NA)
expect_equal(colnames(out), c("n", "nn"))
df2 <- lazy_frame(n = c(1, 1, 2, 2, 2), nn = 1:5)
expect_message(out <- count(df2, n), "already present")
expect_equal(colnames(out), c("n", "nn"))
expect_message(out <- count(df2, n, nn), "already present")
expect_equal(colnames(out), c("n", "nn", "nnn"))
})
test_that(".drop is not supported", {
expect_snapshot(error = TRUE, {
lazy_frame(g = 1) %>%
add_count(.drop = TRUE)
})
})
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.