library(bayesplot)
context("PPC: censoring")
source(test_path("data-for-ppc-tests.R"))
test_that("ppc_km_overlay returns a ggplot object", {
skip_if_not_installed("ggfortify")
expect_gg(ppc_km_overlay(y, yrep, status_y = status_y, left_truncation_y = left_truncation_y, size = 0.5, alpha = 0.2, extrapolation_factor = Inf))
expect_gg(ppc_km_overlay(y, yrep, status_y = status_y, left_truncation_y = left_truncation_y, size = 0.5, alpha = 0.2, extrapolation_factor = 1))
expect_gg(ppc_km_overlay(y2, yrep2, status_y = status_y2))
})
test_that("ppc_km_overlay_grouped returns a ggplot object", {
skip_if_not_installed("ggfortify")
expect_gg(ppc_km_overlay_grouped(y, yrep, group,
status_y = status_y,
left_truncation_y = left_truncation_y,
size = 0.5, alpha = 0.2))
expect_gg(ppc_km_overlay_grouped(y, yrep, as.numeric(group),
status_y = status_y,
left_truncation_y = left_truncation_y,
size = 0.5, alpha = 0.2))
expect_gg(ppc_km_overlay_grouped(y, yrep, as.integer(group),
status_y = status_y,
left_truncation_y = left_truncation_y,
size = 0.5, alpha = 0.2))
expect_gg(ppc_km_overlay_grouped(y2, yrep2, group2,
status_y = status_y2))
expect_gg(ppc_km_overlay_grouped(y2, yrep2, as.numeric(group2),
status_y = status_y2))
expect_gg(ppc_km_overlay_grouped(y2, yrep2, as.integer(group2),
status_y = status_y2))
})
test_that("ppc_km_overlay errors if bad status_y value", {
skip_if_not_installed("ggfortify")
expect_error(
ppc_km_overlay(y, yrep, status_y = FALSE),
"`status_y` must be a numeric vector of 0s and 1s the same length as `y`."
)
expect_error(
ppc_km_overlay(y, yrep, status_y = 1:10),
"`status_y` must be a numeric vector of 0s and 1s the same length as `y`."
)
expect_error(
ppc_km_overlay(y, yrep, status_y = rep(10, length(y))),
"`status_y` must be a numeric vector of 0s and 1s the same length as `y`."
)
})
test_that("ppc_km_overlay errors if bad left_truncation_y value", {
skip_if_not_installed("ggfortify")
expect_error(
ppc_km_overlay(y, yrep, status_y = status_y, left_truncation_y = "a"),
"`left_truncation_y` must be a numeric vector of the same length as `y`"
)
expect_error(
ppc_km_overlay(y, yrep, status_y = status_y, left_truncation_y = 1:10),
"`left_truncation_y` must be a numeric vector of the same length as `y`"
)
})
test_that("ppc_km_overlay errors if bad extrapolation_factor value", {
skip_if_not_installed("ggfortify")
expect_error(
ppc_km_overlay(y, yrep, status_y = status_y, extrapolation_factor = 0.99),
"`extrapolation_factor` must be greater than or equal to 1."
)
})
test_that("ppc_km_overlay messages if extrapolation_factor left at default value", {
skip_if_not_installed("ggfortify")
expect_message(
ppc_km_overlay(y, yrep, status_y = status_y),
"To display all posterior predictive draws, set `extrapolation_factor = Inf`.",
)
})
# Visual tests -----------------------------------------------------------------
test_that("ppc_km_overlay renders correctly", {
testthat::skip_on_cran()
testthat::skip_if_not_installed("vdiffr")
skip_if_not_installed("ggfortify")
skip_on_r_oldrel()
p_base <- ppc_km_overlay(vdiff_y2, vdiff_yrep2, status_y = vdiff_status_y2)
vdiffr::expect_doppelganger("ppc_km_overlay (default)", p_base)
p_custom <- ppc_km_overlay(
vdiff_y2,
vdiff_yrep2,
status_y = vdiff_status_y2,
size = 2,
alpha = .2)
vdiffr::expect_doppelganger("ppc_km_overlay (size, alpha)", p_custom)
p_base2 <- ppc_km_overlay(vdiff_y3, vdiff_yrep3, status_y = vdiff_status_y3)
vdiffr::expect_doppelganger("ppc_km_overlay (default 2)", p_base2)
p_custom2_left_truncation <- ppc_km_overlay(
vdiff_y3,
vdiff_yrep3,
status_y = vdiff_status_y3,
left_truncation_y = vdiff_left_truncation_y3)
vdiffr::expect_doppelganger("ppc_km_overlay (left_truncation_y)",
p_custom2_left_truncation)
p_custom2_no_extrapolation <- ppc_km_overlay(
vdiff_y3,
vdiff_yrep3,
status_y = vdiff_status_y3,
extrapolation_factor = 1
)
vdiffr::expect_doppelganger("ppc_km_overlay (no extrapolation)",
p_custom2_no_extrapolation)
p_custom2_max_extrapolation <- ppc_km_overlay(
vdiff_y3,
vdiff_yrep3,
status_y = vdiff_status_y3,
extrapolation_factor = Inf
)
vdiffr::expect_doppelganger("ppc_km_overlay (max extrapolation)",
p_custom2_max_extrapolation)
})
test_that("ppc_km_overlay_grouped renders correctly", {
testthat::skip_on_cran()
testthat::skip_if_not_installed("vdiffr")
skip_if_not_installed("ggfortify")
skip_on_r_oldrel()
p_base <- ppc_km_overlay_grouped(vdiff_y2, vdiff_yrep2, vdiff_group2,
status_y = vdiff_status_y2)
vdiffr::expect_doppelganger("ppc_km_overlay_grouped (default)", p_base)
p_custom <- ppc_km_overlay_grouped(
vdiff_y2,
vdiff_yrep2,
vdiff_group2,
status_y = vdiff_status_y2,
size = 2,
alpha = .2
)
vdiffr::expect_doppelganger(
"ppc_km_overlay_grouped (size, alpha)",
p_custom
)
p_base2 <- ppc_km_overlay_grouped(vdiff_y3, vdiff_yrep3, vdiff_group3,
status_y = vdiff_status_y3)
vdiffr::expect_doppelganger("ppc_km_overlay_grouped (default 2)", p_base2)
p_custom2_left_truncation <- ppc_km_overlay_grouped(
vdiff_y3,
vdiff_yrep3,
vdiff_group3,
status_y = vdiff_status_y3,
left_truncation_y = vdiff_left_truncation_y3
)
vdiffr::expect_doppelganger(
"ppc_km_overlay_grouped (left_truncation_y)",
p_custom2_left_truncation
)
p_custom2_no_extrapolation <- ppc_km_overlay_grouped(
vdiff_y3,
vdiff_yrep3,
vdiff_group3,
status_y = vdiff_status_y3,
extrapolation_factor = 1
)
vdiffr::expect_doppelganger(
"ppc_km_overlay_grouped (no extrapolation)",
p_custom2_no_extrapolation
)
p_custom2_max_extrapolation <- ppc_km_overlay_grouped(
vdiff_y3,
vdiff_yrep3,
vdiff_group3,
status_y = vdiff_status_y3,
extrapolation_factor = Inf
)
vdiffr::expect_doppelganger(
"ppc_km_overlay_grouped (max extrapolation)",
p_custom2_max_extrapolation
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.