tests/testthat/test-stan-observation_model.R

skip_on_cran()
skip_on_os("windows")

test_that("day_of_week_effect applies day of week effect correctly", {
  reports <- c(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000)
  day_of_week <- c(1, 2, 3, 1, 2, 3, 1, 2, 3, 1)
  effect <- c(1.0, 1.1, 1.2)
  
  expected <- reports * effect[day_of_week] * 3
  result <- day_of_week_effect(reports, day_of_week, effect)
  
  expect_equal(result, expected)
})

test_that("scale_obs scales reports by fraction observed", {
  reports <- c(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000)
  frac_obs <- 0.5
  
  expected <- c(50, 100, 150, 200, 250, 300, 350, 400, 450, 500)
  result <- scale_obs(reports, frac_obs)
  
  expect_equal(result, expected)
})

test_that("truncate_obs truncates reports correctly", {
  reports <- c(100, 200, 300, 400, 500, 600, 700, 800, 900, 1000)
  trunc_rev_cmf <- c(1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1)
  
  expected_truncate <- c(100, 180, 240, 280, 300, 300, 280, 240, 180, 100)
  result_truncate <- truncate_obs(reports, trunc_rev_cmf, reconstruct = 0)
  
  expect_equal(result_truncate, expected_truncate)
  
  result_reconstruct <- truncate_obs(expected_truncate, trunc_rev_cmf, reconstruct = 1)
  
  expect_equal(result_reconstruct, reports)
})

Try the EpiNow2 package in your browser

Any scripts or data that you put into this service are public.

EpiNow2 documentation built on Oct. 31, 2024, 5:09 p.m.