#' @title Specifications test-estimate_cuminc.R
#' @section Last updated by: Steven Haesendonckx (haesendonckx.steven@@gmail.com)
#' @section Last update date: 2022-05-01T14:21:53
#'
#' @section List of tested specifications
#' T1. The function accepts a `data.frame` `tibble` or `data.table`
#' T1.1 No error when `data` is of class `data.frame`
#' T1.2 No error when `data` is of class `tibble`
#' T1.3 No error when `data` is of class `data.table`
#' T1.4 An error when `data` is of an unexpected class, eg `list`
#' T1.5 An error when `data` is NULL
#' T2. The function relies on the presence of two numeric variables, specified through `AVAL` and `CNSR`, to be present in `data`
#' T2.1 An error when colname specified through `AVAL` is not present in `data`
#' T2.2 An error when colname specified through `AVAL` is not numeric
#' T2.3 No error when the colname specified through `AVAL` is not the proposed default
#' T2.4 An error when the colname specified through `CNSR` is not present in `data`
#' T2.5 An error when colname specified through `CNSR` is not a factor
#' T2.6 No error when the colname specified through `CNSR` is not the proposed default
#' T3. The user can specify strata
#' T3.1 An error when the columns, specifying the strata are not available in `data`
#' T3.2 No error when strata is NULL
#' T3.3 An error when `strata` is not part of `data`
#' T4. The user can specify conf.int
#' T4.1 An error when the conf.int is not numeric
#' T4.2 An error when the conf.int is numeric but not between 0 and 1
#' T4.3 No error when the conf.int is numeric and between 0 and 1
#' T4.4 A correct value for conf.int results in the resulting
#' T5. The function removes all rows with NA values inside any of the strata, CNSR or AVAL
#' T5.1 The function removes all rows with NA values inside any of the strata, CNSR or AVAL
#' T6. The function does not alter the calculation of tidycmprsk::cuminc
#' T6.1 The function gives the same results as tidycmprsk::cuminc
# Requirement T1 ----------------------------------------------------------
testthat::context("estimate_cuminc - T1. The function accepts a `data.frame` `tibble` or `data.table`")
testthat::test_that("T1.1 No error when `data` is of class `data.frame`", {
data <- tidycmprsk::trial
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath"), NA
)
})
testthat::test_that("T1.2 No error when `data` is of class `tibble`", {
data <- dplyr::as_tibble(tidycmprsk::trial)
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath"), NA
)
})
testthat::test_that("T1.3 No error when `data` is of class `data.table`", {
if (nzchar(find.package("data.table"))) {
data <- data.table::as.data.table(tidycmprsk::trial)
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath"), NA
)
}
})
testthat::test_that("T1.4 An error when `data` is of an unexpected class, eg `list`", {
data <- base::as.list(tidycmprsk::trial)
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath")
)
})
testthat::test_that("T1.5 An error when `data` is NULL", {
testthat::expect_error(
visR::estimate_cuminc(data = NULL, CNSR = "death_cr", AVAL = "ttdeath")
)
})
# Requirement T2 ----------------------------------------------------------
testthat::context("estimate_cuminc - T2. The function relies on the presence of two numeric variables, specified through `AVAL` and `CNSR`, to be present in `data`")
testthat::test_that("T2.1 An error when colname specified through `AVAL` is not present in `data`", {
data <- tidycmprsk::trial
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "test")
)
})
testthat::test_that("T2.2 An error when colname specified through `AVAL` is not numeric", {
data <- tidycmprsk::trial
data[["ttdeath"]] <- as.character(data[["ttdeath"]])
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath")
)
})
testthat::test_that("T2.3 No error when the colname specified through `AVAL` is not the proposed default", {
data <- tidycmprsk::trial
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath"), NA
)
})
testthat::test_that("T2.4 An error when colname specified through `CNSR` is not present in `data`", {
data <- tidycmprsk::trial
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "test", AVAL = "ttdeath")
)
})
testthat::test_that("T2.5 An error when colname specified through `CNSR` is not a factor", {
data <- tidycmprsk::trial
data[["death_cr"]] <- as.numeric(data[["death_cr"]])
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath")
)
})
testthat::test_that("T2.6 No error when the colname specified through `CNSR` is not the proposed default", {
data <- tidycmprsk::trial
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath"), NA
)
})
# Requirement T3 ----------------------------------------------------------
testthat::context("estimate_cuminc - T3. The user can specify strata")
testthat::test_that("T3.1 An error when the columns, specifying the strata are not available in `data`", {
data <- tidycmprsk::trial
data[["trt"]] <- NULL
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt")
)
})
testthat::test_that("T3.2 No error when strata is NULL", {
data <- tidycmprsk::trial
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = NULL), NA
)
})
testthat::test_that("T3.3 An error when `strata` is not part of `data`", {
data <- tidycmprsk::trial
data[["trt"]] <- NULL
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt")
)
})
# Requirement T4 ----------------------------------------------------------
testthat::context("estimate_cuminc - T4. The user can specify conf.int")
testthat::test_that("T4.1 An error when the conf.int is not numeric", {
data <- tidycmprsk::trial
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt", conf.int = "blah")
)
})
testthat::test_that("T4.2 An error when the conf.int is numeric but not between 0 and 1", {
data <- tidycmprsk::trial
testthat::expect_error(
visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt", conf.int = 2)
)
})
testthat::test_that("T4.3 No error when the conf.int is numeric and between 0 and 1", {
data <- tidycmprsk::trial
conf <- 0.60
testthat::expect_error(visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt", conf.int = conf), NA)
})
testthat::test_that("T4.4 A correct value for conf.int results in the resulting", {
data <- tidycmprsk::trial
conf <- 0.60
cuminc <- visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt", conf.int = conf)
testthat::expect_equal(conf, cuminc[["conf.level"]])
})
# Requirement T5 ----------------------------------------------------------
testthat::context("estimate_cuminc - T5. The function removes all rows with NA values inside any of the strata, CNSR or AVAL")
testthat::test_that("T5.1 The function removes all rows with NA values inside any of the strata, CNSR or AVAL", {
data <- tidycmprsk::trial
data[1:10, "trt"] <- NA
data[11:20, "ttdeath"] <- NA
data[21:30, "death_cr"] <- NA
## Keep NA
cumobj <- visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt")
## Drop NA
data <- tidyr::drop_na(data, trt, ttdeath, death_cr)
cumobjNA <- visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt")
testthat::expect_equal(cumobjNA, cumobj)
})
# Requirement T6 ----------------------------------------------------------
testthat::context("estimate_cuminc - T6. The function does not alter the calculation of tidycmprsk::cuminc")
testthat::test_that("T6.1 The function gives the same results as tidycmprsk::cuminc", {
data <- tidycmprsk::trial
cumvisr <- visR::estimate_cuminc(data = data, CNSR = "death_cr", AVAL = "ttdeath", strata = "trt")
cumori <- tidycmprsk::cuminc(
formula = stats::as.formula(paste0("survival::Surv(ttdeath, death_cr) ~ trt")),
data = data
)
testthat::expect_equal(cumvisr, cumori)
})
# END OF CODE -------------------------------------------------------------
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.