tests/testthat/test-prop-cases-not-zero.R

mdf <- data.frame(x = NA)

test_that("prop missing / complete are 0 or 1 where there is one variable", {
  expect_equal(prop_miss_case(mdf), 1)
  expect_equal(n_case_complete(mdf), 0)
  expect_equal(prop_complete_case(mdf), 0)
  expect_equal(n_var_complete(mdf), 0)
})

df_diag_na <- diag_na(10)

test_that("prop missing / complete are 0 or 1 where no complete cases", {
  expect_equal(prop_miss_case(df_diag_na), 1)
  expect_equal(n_case_complete(df_diag_na), 0)
  expect_equal(prop_complete_case(df_diag_na), 0)
  expect_equal(n_var_complete(df_diag_na), 0)
})

# This tests against
bad_air_quality <- tibble::tribble(
  ~Ozone, ~Solar.R, ~Wind, ~Temp, ~Month, ~Day,
  NA,      190,   7.4,    67,      5,    1,
  36,       NA,     8,    72,      5,    2,
  12,      149,    NA,    74,      5,    3,
  18,      313,  11.5,    NA,      5,    4,
  NA,       NA,  14.3,    56,     NA,    5,
  28,       NA,  14.9,    66,      5,   NA,
  NA,      190,   7.4,    67,      5,    1,
  36,       NA,     8,    72,      5,    2,
  12,      149,    NA,    74,      5,    3,
  18,      313,  11.5,    NA,      5,    4,
  NA,       NA,  14.3,    56,     NA,    5,
  28,       NA,  14.9,    66,      5,   NA
)

library(dplyr)
library(tibble)

bad_na_df <- bad_air_quality %>%
  summarise(
    n_missing = n_case_miss(.),
    n_complete = n_case_complete(.),
    prop_complete = prop_complete_case(.),
    prop_missing = prop_miss_case(.),
  )

expected_bad_na_df <- tibble(
  n_missing = 12L,
  n_complete = 0L,
  prop_complete = 0,
  prop_missing = 1
)

test_that("prop_miss_case returns same as mean_",{
  expect_equal(bad_na_df, expected_bad_na_df)
})
njtierney/narnia documentation built on March 17, 2024, 1:06 p.m.