tests/testthat/test-10-advanced.R

test_that("surv_prevalence_by produces per-group estimates", {
  sim <- surv_simulate(n_regions = 4, n_weeks = 8, seed = 1)
  d <- surv_design(sim$sequences, ~ region,
                   sim$population[c("region", "seq_rate")], sim$population)
  by_region <- surv_prevalence_by(d, "BA.2.86", by = "region")
  expect_s3_class(by_region, "tbl_df")
  expect_true("group" %in% names(by_region))
  expect_true(length(unique(by_region$group)) >= 3)
})

test_that("surv_sensitivity returns all methods", {
  sim <- surv_simulate(n_regions = 3, n_weeks = 8, seed = 2)
  d <- surv_design(sim$sequences, ~ region,
                   sim$population[c("region", "seq_rate")], sim$population)
  sens <- surv_sensitivity(d, "BA.2.86")
  expect_s3_class(sens, "tbl_df")
  expect_true(all(c("naive", "hajek", "poststratified") %in% sens$method))
})

test_that("surv_sensitivity includes adjusted when delay_fit provided", {
  sim <- surv_simulate(n_regions = 3, n_weeks = 10, seed = 3)
  d <- surv_design(sim$sequences, ~ region,
                   sim$population[c("region", "seq_rate")], sim$population)
  delay <- surv_estimate_delay(d)
  sens <- surv_sensitivity(d, "BA.2.86", delay_fit = delay)
  expect_true("adjusted" %in% sens$method)
})

test_that("surv_power_curve returns correct structure", {
  sim <- surv_simulate(n_regions = 3, n_weeks = 8, seed = 4)
  d <- surv_design(sim$sequences, ~ region,
                   sim$population[c("region", "seq_rate")], sim$population)
  pc <- surv_power_curve(d)
  expect_s3_class(pc, "surv_power_curve")
  expect_true(nrow(pc$curve) > 0)
  expect_true(nrow(pc$thresholds) == 3)
  expect_true(all(pc$curve$detection >= 0 & pc$curve$detection <= 1))
})

test_that("surv_power_curve plot works", {
  sim <- surv_simulate(n_regions = 3, n_weeks = 8, seed = 5)
  d <- surv_design(sim$sequences, ~ region,
                   sim$population[c("region", "seq_rate")], sim$population)
  pc <- surv_power_curve(d)
  p <- plot(pc)
  expect_s3_class(p, "ggplot")
})

test_that("surv_power_curve print works", {
  sim <- surv_simulate(n_regions = 3, n_weeks = 8, seed = 6)
  d <- surv_design(sim$sequences, ~ region,
                   sim$population[c("region", "seq_rate")], sim$population)
  pc <- surv_power_curve(d)
  expect_no_error(print(pc))
})

Try the survinger package in your browser

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

survinger documentation built on April 27, 2026, 9:10 a.m.