tests/testthat/test-count.R

test_that("count2 is correct", {
  tb <- tibble::tibble(x = c(1, 3, 2, 3), y = 1:4)
  tb2 <- dplyr::mutate(tb, n = 3)
  tb3 <- dplyr::mutate(tb, p = 3)
  x1 <- count2(tb, x)
  x2 <- count2(tb, x, wt = y)
  x3 <- count2(tb, x, name = "nn")
  expect_message(x4 <- count2(tb2, x, n), "Storing counts in `nn`")
  x5 <- dplyr::select(count2(tb, x, sort = FALSE), -p)
  expect_message(x6 <- count2(tb3, x, p), "Storing counts in `pp`")

  y1 <- dplyr::count(tb, x, sort = TRUE) %>% dplyr::mutate(p = n / sum(n))
  y2 <- dplyr::count(tb, x, wt = y, sort = TRUE) %>% dplyr::mutate(p = n / sum(n))
  y3 <- dplyr::count(tb, x, name = "nn", sort = TRUE) %>% dplyr::mutate(p = nn / sum(nn))
  suppressMessages(y4 <- dplyr::count(tb2, x, n, sort = TRUE) %>% dplyr::mutate(p = nn / sum(nn)))
  suppressMessages(y6 <- dplyr::count(tb3, x, p, sort = TRUE) %>% dplyr::mutate(pp = n / sum(n)))
  expect_identical(x1, y1)
  expect_identical(x2, y2)
  expect_identical(x3, y3)
  expect_identical(x4, y4)
  expect_identical(x5, dplyr::count(tb, x))
  expect_identical(x6, y6)
})

test_that("vcount is correct", {
  x <- c(1L, 1L, 2L, 2L, 2L, 2L, 3L)
  x1 <- vcount(x)
  x2 <- vcount(x, sort = FALSE)
  x3 <- vcount(x, name = "freq")
  tb <- tibble::tibble(value = x)
  y1 <- count2(tb, value)

  expect_identical(x1, y1)
  expect_identical(names(x3), c("value", "freq", "p"))
  expect_identical(x1$value, c(2L, 1L, 3L))
  expect_identical(x2$value, 1:3)
})

test_that("p_name and check_p_name are correct", {
  expect_identical(p_name(c("p", "pp")), "ppp")
  expect_message(check_p_name(NULL, "p"), "Storing counts in `pp`")
})
jedwards24/edwards documentation built on Sept. 2, 2023, 8:16 a.m.