Skip to content

Commit c16fce3

Browse files
committed
Add tests for ppc_km_overlay() with left-truncation
1 parent f59e38e commit c16fce3

6 files changed

+443
-4
lines changed

tests/testthat/_snaps/ppc-censoring/ppc-km-overlay-default-2.svg

+69
Loading

tests/testthat/_snaps/ppc-censoring/ppc-km-overlay-grouped-default-2.svg

+125
Loading

tests/testthat/_snaps/ppc-censoring/ppc-km-overlay-grouped-left-truncation-y.svg

+125
Loading

tests/testthat/_snaps/ppc-censoring/ppc-km-overlay-left-truncation-y.svg

+69
Loading

tests/testthat/data-for-ppc-tests.R

+17
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ y <- rnorm(100)
33
yrep <- matrix(rnorm(2500), ncol = 100)
44
group <- gl(4, 25, labels = LETTERS[1:4])
55
status_y <- rep_len(0:1, length.out = length(y))
6+
left_truncation_y <- y - 10
67

78
y2 <- rpois(30, 1)
89
yrep2 <- matrix(rpois(30, 1), ncol = 30)
@@ -22,6 +23,22 @@ vdiff_yrep2 <- matrix(rpois(30 * 10, 1), ncol = 30, nrow = 10)
2223
vdiff_group2 <- rep_len(c(1,2), length.out = 30)
2324
vdiff_status_y2 <- rep_len(0:1, length.out = length(vdiff_y2))
2425

26+
vdiff_y3 <- rexp(50, rate = 0.2)
27+
vdiff_status_y3 <- rep_len(0:1, length.out = length(vdiff_y3))
28+
vdiff_group3 <- rep_len(c(1,2), length.out = 50)
29+
vdiff_left_truncation_y3 <- runif(length(vdiff_y3), min = 0, max = 0.6) * vdiff_y3
30+
31+
simulate_truncated_exp <- function(n, rate, trunc_point) {
32+
u <- runif(n)
33+
return(trunc_point - log(u) / rate)
34+
}
35+
36+
rate <- 0.2
37+
vdiff_yrep3 <- matrix(NA, nrow = 10, ncol = 50)
38+
for (i in 1:50) {
39+
vdiff_yrep3[, i] <- simulate_truncated_exp(10, rate, vdiff_left_truncation_y3[i])
40+
}
41+
2542
vdiff_loo_y <- rnorm(100, 30, 5)
2643
vdiff_loo_yrep <- matrix(rnorm(100 * 400, 30, 5), nrow = 400)
2744
vdiff_loo_lw <- vdiff_loo_yrep

tests/testthat/test-ppc-censoring.R

+38-4
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,24 @@ source(test_path("data-for-ppc-tests.R"))
55

66
test_that("ppc_km_overlay returns a ggplot object", {
77
skip_if_not_installed("ggfortify")
8-
expect_gg(ppc_km_overlay(y, yrep, status_y = status_y, size = 0.5, alpha = 0.2))
8+
expect_gg(ppc_km_overlay(y, yrep, status_y = status_y, left_truncation_y = left_truncation_y, size = 0.5, alpha = 0.2))
99
expect_gg(ppc_km_overlay(y2, yrep2, status_y = status_y2))
1010
})
1111

1212
test_that("ppc_km_overlay_grouped returns a ggplot object", {
1313
skip_if_not_installed("ggfortify")
1414
expect_gg(ppc_km_overlay_grouped(y, yrep, group,
15-
status_y = status_y))
15+
status_y = status_y,
16+
left_truncation_y = left_truncation_y,
17+
size = 0.5, alpha = 0.2))
1618
expect_gg(ppc_km_overlay_grouped(y, yrep, as.numeric(group),
17-
status_y = status_y))
19+
status_y = status_y,
20+
left_truncation_y = left_truncation_y,
21+
size = 0.5, alpha = 0.2))
1822
expect_gg(ppc_km_overlay_grouped(y, yrep, as.integer(group),
19-
status_y = status_y))
23+
status_y = status_y,
24+
left_truncation_y = left_truncation_y,
25+
size = 0.5, alpha = 0.2))
2026

2127
expect_gg(ppc_km_overlay_grouped(y2, yrep2, group2,
2228
status_y = status_y2))
@@ -44,6 +50,17 @@ test_that("ppc_km_overlay renders correctly", {
4450
size = 2,
4551
alpha = .2)
4652
vdiffr::expect_doppelganger("ppc_km_overlay (size, alpha)", p_custom)
53+
54+
p_base2 <- ppc_km_overlay(vdiff_y3, vdiff_yrep3, status_y = vdiff_status_y3)
55+
vdiffr::expect_doppelganger("ppc_km_overlay (default 2)", p_base2)
56+
57+
p_custom2 <- ppc_km_overlay(
58+
vdiff_y3,
59+
vdiff_yrep3,
60+
status_y = vdiff_status_y3,
61+
left_truncation_y = vdiff_left_truncation_y3)
62+
vdiffr::expect_doppelganger("ppc_km_overlay (left_truncation_y)",
63+
p_custom2)
4764
})
4865

4966
test_that("ppc_km_overlay_grouped renders correctly", {
@@ -69,4 +86,21 @@ test_that("ppc_km_overlay_grouped renders correctly", {
6986
"ppc_km_overlay_grouped (size, alpha)",
7087
p_custom
7188
)
89+
90+
p_base2 <- ppc_km_overlay_grouped(vdiff_y3, vdiff_yrep3, vdiff_group3,
91+
status_y = vdiff_status_y3)
92+
vdiffr::expect_doppelganger("ppc_km_overlay_grouped (default 2)", p_base2)
93+
94+
p_custom2 <- ppc_km_overlay_grouped(
95+
vdiff_y3,
96+
vdiff_yrep3,
97+
vdiff_group3,
98+
status_y = vdiff_status_y3,
99+
left_truncation_y = vdiff_left_truncation_y3
100+
)
101+
102+
vdiffr::expect_doppelganger(
103+
"ppc_km_overlay_grouped (left_truncation_y)",
104+
p_custom2
105+
)
72106
})

0 commit comments

Comments
 (0)