# handle 'units' variables. All of these tests are skipped
# on CRAN because for some reason when I load and use the
# units package it makes valgrind detect possible memory leaks.
test_that(
 'orsf tracks meta data for units class variables',
 code = {
  # units may have memory leaks
  skip_on_cran()
  suppressMessages(library(units))
  pbc_units <- pbc_orsf
  units(pbc_units$time) <- 'days'
  units(pbc_units$age) <- 'years'
  units(pbc_units$bili) <- 'mg/dl'
  fit_units <- orsf(pbc_units, Surv(time, status) ~ . - id, n_tree=1)
  expect_equal(
   fit_units$get_var_unit('time'),
   list( numerator = "d", denominator = character(0), label = "d")
  )
  expect_equal(
   fit_units$get_var_unit('age'),
   list(numerator = "years", denominator = character(0), label = "years")
  )
  expect_equal(
   fit_units$get_var_unit('bili'),
   list(numerator = "mg", denominator = "dl", label = "mg/dl")
  )
 }
)
test_that("output has expected items", {
 skip_on_cran()
 suppressMessages(library(units))
 pbc_units <- pbc_orsf
 units(pbc_units$time) <- 'days'
 units(pbc_units$age) <- 'years'
 units(pbc_units$bili) <- 'mg/dl'
 ui <- unit_info(pbc_units, c('time', 'age', 'bili'))
 expect_equal(
  ui,
  list(
   time = list(
    numerator = "d",
    denominator = character(0),
    label = "d"
   ),
   age = list(
    numerator = "years",
    denominator = character(0),
    label = "years"
   ),
   bili = list(
    numerator = "mg",
    denominator = "dl",
    label = "mg/dl"
   )
  )
 )
 expect_true(is_empty(unit_info(pbc_units, c())))
})
test_that('only symbolic units are allowed', {
 skip_on_cran()
 suppressMessages(library(units))
 pbc_units <- pbc_orsf
 units(pbc_units$bili) <- 'mg/dl'
 class(attr(pbc_units$bili, 'units')) <- 'bad_units'
 expect_error(unit_info(pbc_units, 'bili'), 'symbolic_units')
})
test_that(
 desc = 'inconsistent units are detected',
 code = {
  skip_on_cran()
  suppressMessages(library(units))
  pbc_units <- pbc_orsf
  units(pbc_units$age) <- 'years'
  pbc_test_units <- pbc_orsf
  units(pbc_test_units$age) <- 'days'
  fit <- orsf(formula = time + status  ~ . - id,
              data = pbc_units,
              n_tree = n_tree_test)
  expect_error(predict(fit, new_data = pbc_test_units, pred_horizon = 1000),
               'has unit')
 }
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.