tests/testthat/test-roxytest-tests-join.r

# 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
  )
})
PolicyAnalysisInc/herosurv documentation built on May 21, 2023, 10:12 a.m.