tests/testthat/test-11-infrastructure.R

test_that("surv_estimate one-liner works", {
  sim <- surv_simulate(n_regions = 3, n_weeks = 8, seed = 1)
  result <- surv_estimate(
    data = sim$sequences, strata = ~ region,
    sequencing_rate = sim$population[c("region", "seq_rate")],
    population = sim$population, lineage = "BA.2.86"
  )
  expect_s3_class(result, "surv_prevalence")
})

test_that("surv_estimate with delay correction", {
  sim <- surv_simulate(n_regions = 3, n_weeks = 10, seed = 2)
  result <- surv_estimate(
    data = sim$sequences, strata = ~ region,
    sequencing_rate = sim$population[c("region", "seq_rate")],
    population = sim$population, lineage = "BA.2.86",
    correct_delay = TRUE
  )
  expect_s3_class(result, "surv_adjusted")
})

test_that("surv_bind combines multiple results", {
  sim <- surv_simulate(n_regions = 3, n_weeks = 8, seed = 3)
  d <- surv_design(sim$sequences, ~ region,
                   sim$population[c("region", "seq_rate")], sim$population)
  p1 <- surv_lineage_prevalence(d, "BA.5")
  p2 <- surv_lineage_prevalence(d, "XBB.1.5")
  combined <- surv_bind(p1, p2)
  expect_s3_class(combined, "tbl_df")
  expect_true("source" %in% names(combined))
  expect_true(length(unique(combined$source)) == 2)
})

test_that("surv_table formats prevalence", {
  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)
  prev <- surv_lineage_prevalence(d, "BA.2.86")
  tbl <- surv_table(prev)
  expect_s3_class(tbl, "tbl_df")
  expect_true("ci" %in% names(tbl))
})

test_that("surv_table formats allocation", {
  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)
  alloc <- surv_optimize_allocation(d, "min_mse", 200)
  tbl <- surv_table(alloc)
  expect_s3_class(tbl, "tbl_df")
})

test_that("surv_quality returns one-row tibble", {
  sim <- surv_simulate(n_regions = 4, n_weeks = 10, seed = 6)
  d <- surv_design(sim$sequences, ~ region,
                   sim$population[c("region", "seq_rate")], sim$population)
  q <- surv_quality(d)
  expect_s3_class(q, "tbl_df")
  expect_equal(nrow(q), 1)
  expect_true(all(c("gini", "deff", "rate_ratio", "detection_at_1pct") %in% names(q)))
  expect_true(q$deff >= 1)
})

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.