tests/testthat/test-miss-scan-count.R

dat_ms <- tibble::tribble(~x,  ~y,    ~z,
                         1,   "A",   -100,
                         3,   "N/A", -99,
                         NA,  NA,    -98,
                         -99, "E",   -101,
                         -98, "F",   -1)
test_that("miss_scan_count returns a data.frame", {
  expect_s3_class(miss_scan_count(dat_ms, -99), "data.frame")
})

test_that("miss_scan_count returns an error when no search is provided", {
  expect_snapshot(
    error = TRUE,
    miss_scan_count(dat_ms)
  )
})

test_that("miss_scan_count returns an error when no data is provided", {
  expect_snapshot(
    error = TRUE,
    miss_scan_count(search = -99)
  )
})

test_that("miss_scan_count returns a data.frame of the right size", {
  expect_equal(
    dim(miss_scan_count(dat_ms, -99)),
    c(3, 2)
  )
})

correct_answer_1 <- tibble::tribble(
  ~Variable, ~n,
  "x", 1L,
  "y", 0L,
  "z", 1L
)

correct_answer_2 <- tibble::tribble(
  ~Variable, ~n,
  "x", 2L,
  "y", 0L,
  "z", 2L
)

correct_answer_3 <- tibble::tribble(
  ~Variable, ~n,
  "x", 2L,
  "y", 1L,
  "z", 2L
)

correct_answer_4 <- tibble::tribble(
  ~Variable, ~n,
  "x", 2L,
  "y", 1L,
  "z", 2L
)

test_that("miss_scan_count returns the right answer", {
  expect_equal(miss_scan_count(dat_ms,-99),
               correct_answer_1)
  expect_equal(miss_scan_count(dat_ms,c(-99,-98)),
               correct_answer_2)
})
njtierney/naniar documentation built on March 19, 2024, 9:48 p.m.