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/narnia documentation built on June 2, 2025, 9:27 a.m.