# Generated by roxytest: Do not edit by hand!
# File R/join.r: @tests
test_that("Function join() @ L75", {
dist1 <- define_survival(distribution = "exp", rate = 0.05)
dist2 <- define_survival(distribution = "gompertz", rate = .5, shape = 1)
dist3 <- define_survival(distribution = "exp", rate = 0.25)
expect_equal(
join(dist1, 5, dist2),
create_list_object(
c('surv_join', 'surv_combined', 'surv_dist'),
dists = list(dist1, dist2),
cuts = 5
)
)
expect_equal(
join(dist1, 5, dist2, 10, dist3),
create_list_object(
c('surv_join', 'surv_combined', 'surv_dist'),
dists = list(dist1, dist2, dist3),
cuts = c(5, 10)
)
)
expect_error(
join(dist1, 5, 'foo'),
'Error joining distributions, invalid survival distribution provided.',
fixed = TRUE
)
expect_error(
join(dist1, 'foo', dist2),
'Error joining distributions, cuts times must be numeric.',
fixed = TRUE
)
expect_error(
join(dist1, NA_real_, dist2),
'Error joining distributions, cuts times cannot be NA.',
fixed = TRUE
)
expect_error(
join(dist1, -1, dist2),
'Error joining distributions, cut times cannot be negative.',
fixed = TRUE
)
expect_error(
join(dist1, -1, dist2, 3),
'Error joining distributions, must provide an odd number of arguments corresponding to n distributions and n - 1 cut points.',
fixed = TRUE
)
expect_error(
join(dist1, 5, dist2, 3, dist3),
'Error joining distributions, distributions and cutpoints must be provided in order.',
fixed = TRUE
)
})
test_that("Function surv_prob.surv_join() @ L182", {
dist1 <- define_surv_param('exp', rate = 0.05)
dist2 <- define_surv_param('exp', rate = 0.1)
dist3 <- define_surv_param('exp', rate = 0.2)
dist4 <- join(dist1, 20, dist2)
dist5 <- join(dist1, 20, dist2, 40, dist3)
dist6 <- join(dist1, 0.3, dist2, 2.1, dist3)
expect_equal(
surv_prob(dist4, seq_len(100)),
ppexp(
seq_len(100),
rate = c(0.05, 0.1),
t = c(0, 20),
lower.tail = FALSE
)
)
expect_equal(
surv_prob(dist5, seq_len(100)),
ppexp(
seq_len(100),
rate = c(0.05, 0.1, 0.2),
t = c(0, 20, 40),
lower.tail = FALSE
)
)
expect_equal(
surv_prob(dist6, seq_len(100)),
ppexp(
seq_len(100),
rate = c(0.05, 0.1, 0.2),
t = c(0, 0.3, 2.1),
lower.tail = FALSE
)
)
})
test_that("Function print.surv_join() @ L216", {
dist1 <- define_surv_param('exp', rate = 0.05)
dist2 <- define_surv_param('exp', rate = 0.1)
expect_output(
print(join(dist1, 5.12345, dist2)),
'A joined survival distribution:
* Segment 1 (t = 0 - 5.12): An exponential distribution (rate = 0.05).
* Segment 2 (t = 5.12 - \U221E): An exponential distribution (rate = 0.1).',
fixed = TRUE
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.