tests/testthat/test-Surv_CNSR.R

test_that("The function returns a Surv object", {
  expect_error(surv1 <- with(adtte, Surv_CNSR()), NA)
  expect_error(surv2 <- with(adtte, Surv_CNSR()), NA)
  expect_true(inherits(surv1, "Surv"))
  expect_true(inherits(surv2, "Surv"))
})

test_that("The function is compatible with the survival package", {
  expect_error(survfit(Surv_CNSR() ~ 1, data = adtte), NA)
  expect_error(survfit(Surv_CNSR() ~ STR01, data = adtte), NA)

  expect_error(survfit(formula = Surv_CNSR() ~ 1, data = adtte), NA)
  expect_error(survfit(formula = Surv_CNSR() ~ STR01, data = adtte), NA)

  expect_error(survfit(Surv_CNSR(AVAL, CNSR) ~ 1, data = adtte), NA)
  expect_error(survfit(Surv_CNSR(AVAL, CNSR) ~ STR01, data = adtte), NA)

  expect_error(survival::coxph(Surv_CNSR() ~ STR01, data = adtte), NA)
})


test_that("The results of the estimation match between Surv_CNSR and Surv with inverted censoring", {
  expect_equal(
    with(adtte, Surv_CNSR()),
    with(adtte, Surv(AVAL, 1 - CNSR))
  )

  km1 <- survfit2(formula = Surv_CNSR() ~ 1, data = adtte)
  km2 <- survfit2(formula = Surv(AVAL, 1 - CNSR) ~ 1, data = adtte)
  km1$call <- km2$call <- km1$.Environment <- km2$.Environment <- NULL
  expect_equal(km1, km2)

  km1 <- survfit2(formula = Surv_CNSR() ~ STR01, data = adtte)
  km2 <- survfit2(formula = Surv(AVAL, 1 - CNSR) ~ STR01, data = adtte)
  km1$call <- km2$call <- km1$.Environment <- km2$.Environment <- NULL
  expect_equal(km1, km2)
})


test_that("An error when column name specified through AVAL is not present in the environment", {
  expect_true(!"AVAL" %in% colnames(survival::lung))
  expect_error(survfit(Surv_CNSR() ~ 1, data = survival::lung))
  expect_error(survfit(Surv_CNSR() ~ sex, data = survival::lung))

  adtte[["AVAL"]] <- NULL
  expect_error(survfit(Surv_CNSR() ~ 1, data = adtte))
})

test_that("An error when column name specified through AVAL in the environment is not numeric", {
  adtte[["AVAL"]] <- as.character(adtte[["AVAL"]])
  expect_error(survfit(Surv_CNSR() ~ 1, data = adtte))

  expect_error(survfit(Surv_CDISC(AVAL = time) ~ 1, data = survival::lung %>% dplyr::mutate(AVAL = as.character(time))))
})

test_that("A warning when the column specified through AVAL has negative values", {
  expect_warning(survfit(Surv_CNSR() ~ 1, data = adtte %>% dplyr::mutate(AVAL = AVAL - 10000)))
})

test_that("An error when the column name specified through CNSR is not present in the environment", {
  expect_true(!"CNSR" %in% colnames(survival::lung))
  expect_error(survfit(Surv_CNSR() ~ 1, data = survival::lung %>% dplyr::rename(AVAL = time)))
  expect_error(survfit(Surv_CNSR() ~ sex, data = survival::lung %>% dplyr::rename(AVAL = time)))

  adtte[["CNSR"]] <- NULL
  expect_error(survfit(Surv_CNSR() ~ 1, data = adtte))
})

test_that("An error when the column name specified through CNSR in the environment is not numeric", {
  adtte[["CNSR"]] <- as.character(adtte[["CNSR"]])
  expect_error(survfit(Surv_CNSR() ~ 1, data = adtte))

  expect_error(survfit(Surv_CDISC(AVAL = time) ~ 1, data = survival::lung %>% dplyr::mutate(CNSR = as.character(status))))
})

test_that("An error when the column name specified through CNSR is not coded as 0/1", {
  expect_error(survfit(Surv_CNSR(time, status) ~ 1, data = survival::lung))
})

Try the ggsurvfit package in your browser

Any scripts or data that you put into this service are public.

ggsurvfit documentation built on Nov. 2, 2023, 5:33 p.m.