tests/testthat/test-dist.R

skip_on_cran()
skip_on_os("windows")

test_that("distributions are the same in R and stan", {
  args <- list(mean = 3, mean_sd = 0, sd = 2, sd_sd = 0, max_value = 15)
  lognormal_params <-
    do.call(lognorm_dist_def, (c(args, list(samples = 1))))$params[[1]]
  gamma_params <-
    do.call(gamma_dist_def, (c(args, list(samples = 1))))$params[[1]]
  pmf_r_lognormal <- dist_skel(
    n = seq_len(args$max_value) - 1, dist = TRUE, cum = FALSE,
    model = "lognormal", params = lognormal_params, max_value = args$max,
    discrete = TRUE
  )
  pmf_r_gamma <- dist_skel(
    n = seq_len(args$max_value) - 1, dist = TRUE, cum = FALSE,
    model = "gamma", params = gamma_params, max_value = args$max,
    discrete = TRUE
  )

  pmf_stan_lognormal <- discretised_pmf(args$mean, args$sd, args$max_value, 0)
  pmf_stan_gamma <- discretised_pmf(args$mean, args$sd, args$max_value, 1)

  expect_equal(pmf_r_lognormal, pmf_stan_lognormal)
  expect_equal(pmf_r_gamma, pmf_stan_gamma)
})

Try the EpiNow2 package in your browser

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

EpiNow2 documentation built on Sept. 26, 2023, 5:11 p.m.