Nothing
#' @srrstats {G5.2b} *Explicit tests should demonstrate conditions which trigger every one of those messages, and should compare the result with expected values.*
#' @srrstats {G5.5} *Correctness tests should be run with a fixed random seed*
#' @srrstats {G5.6} **Parameter recovery tests** *to test that the implementation produce expected results given data with known properties. For instance, a linear regression algorithm should return expected coefficient values for a simulated data set generated from a linear model.*
#' @srrstats {G5.6a} *Parameter recovery tests should generally be expected to succeed within a defined tolerance rather than recovering exact values.*
#' @srrstats {G5.9} **Noise susceptibility tests** *Packages should test for expected stochastic behaviour, such as through the following conditions:*
#' @srrstats {G5.9a} *Adding trivial noise (for example, at the scale of `.Machine$double.eps`) to data does not meaningfully change results*
test_that("cv_curegmifs function works correctly", {
library(survival)
withr::local_seed(123)
temp <- generate_cure_data(n = 100, j = 15, n_true = 3, a = 1.8, rho = 0.2)
training <- temp$training
fit.cv <- cv_curegmifs(Surv(Time, Censor) ~ .,
data = training,
x_latency = training, fdr_control = FALSE,
maxit = 450, epsilon = 0.01, n_folds = 2,
seed = 23, verbose = TRUE
)
expect_error(cv_curegmifs(Time ~ ., data = training, x_latency = training))
expect_error(cv_curegmifs(Censor ~ ., data = training, x_latency = training))
fit.cv %>% expect_s3_class("mixturecure")
expect_setequal(names(fit.cv), c("selected_step_inc", "selected_step_lat",
"b0", "b", "beta", "rate", "logLik", "max_c",
"x_incidence", "x_latency", "y", "model",
"scale", "method", "alpha", "cv", "call",
"fdr_control"))
fit.cv$selected_step_inc %>% expect_type("integer")
fit.cv$selected_step_lat %>% expect_type("integer")
fit.cv$b0 %>% expect_type("double")
fit.cv$b %>% expect_type("double")
fit.cv$beta %>% expect_type("double")
fit.cv$rate %>% expect_type("double")
fit.cv$logLik %>% expect_type("double")
fit.cv$max_c %>% expect_type("double")
fit.cv$x_incidence %>% expect_type("double")
fit.cv$x_latency %>% expect_type("double")
fit.cv$y %>% expect_type("double")
fit.cv$model %>% expect_type("character")
fit.cv$scale %>% expect_type("logical")
fit.cv$method %>% expect_type("character")
fit.cv$alpha %>% expect_type("double")
fit.cv$cv %>% expect_type("logical")
fit.cv$fdr_control %>% expect_type("logical")
fit.cv$call %>% expect_type("language")
fit.cv$b %>% expect_length(dim(fit.cv$x_incidence)[2])
fit.cv$beta %>% expect_length(dim(fit.cv$x_latency)[2])
fit.cv$b0 %>% expect_length(1)
fit.cv$alpha %>% expect_length(1)
fit.cv$rate %>% expect_length(1)
fit.cv$selected_step_inc %>% expect_length(1)
fit.cv$selected_step_lat %>% expect_length(1)
fit.cv$logLik %>% expect_length(1)
fit.cv$max_c %>% expect_length(1)
expect_equal(round(fit.cv$rate, 6), 2.067206)
expect_equal(round(fit.cv$alpha, 6), 0.648263)
fit.cv <- cv_curegmifs(Surv(Time, Censor) ~ ., data = training,
penalty_factor_inc = rep(c(0, 1), c(1, 11)),
measure_inc = "auc",
x_latency = training, fdr_control = FALSE,
maxit = 450, epsilon = 0.01, n_folds = 2,
seed = 23, verbose = FALSE, parallel = FALSE
)
fit.cv %>% expect_s3_class("mixturecure")
expect_setequal(names(fit.cv), c("selected_step_inc", "selected_step_lat",
"b0", "b", "beta", "rate", "logLik", "max_c",
"x_incidence", "x_latency", "y", "model",
"scale", "method", "alpha", "max.auc", "cv",
"call", "fdr_control"))
fit.cv$selected_step_inc %>% expect_type("integer")
fit.cv$selected_step_lat %>% expect_type("integer")
fit.cv$b0 %>% expect_type("double")
fit.cv$b %>% expect_type("double")
fit.cv$beta %>% expect_type("double")
fit.cv$rate %>% expect_type("double")
fit.cv$logLik %>% expect_type("double")
fit.cv$max_c %>% expect_type("double")
fit.cv$max.auc %>% expect_type("double")
fit.cv$x_incidence %>% expect_type("double")
fit.cv$x_latency %>% expect_type("double")
fit.cv$y %>% expect_type("double")
fit.cv$model %>% expect_type("character")
fit.cv$scale %>% expect_type("logical")
fit.cv$method %>% expect_type("character")
fit.cv$alpha %>% expect_type("double")
fit.cv$cv %>% expect_type("logical")
fit.cv$fdr_control %>% expect_type("logical")
fit.cv$call %>% expect_type("language")
fit.cv$b %>% expect_length(dim(fit.cv$x_incidence)[2])
fit.cv$beta %>% expect_length(dim(fit.cv$x_latency)[2])
fit.cv$b0 %>% expect_length(1)
fit.cv$alpha %>% expect_length(1)
fit.cv$rate %>% expect_length(1)
fit.cv$selected_step_inc %>% expect_length(1)
fit.cv$selected_step_lat %>% expect_length(1)
fit.cv$logLik %>% expect_length(1)
fit.cv$max_c %>% expect_length(1)
fit.cv$max.auc %>% expect_length(1)
withr::local_seed(4)
temp <- generate_cure_data(n = 200, j = 10, n_true = 10, a = 1.8)
training <- temp$training
expect_error(cv_curegmifs(training$Time))
training$group <- gl(2, 75)
expect_error(cv_curegmifs(Surv(Time, Censor) ~ .,
data = training, x_latency = training, thresh = -1))
expect_error(cv_curegmifs(Surv(Time, Censor) ~ .,
data = training, x_latency = training, epsilon = -1))
expect_error(cv_curegmifs(Surv(Time, Censor) ~ .,
data = training, x_latency = training,
subset = group))
expect_error(cv_curegmifs(Surv(Time, Censor) ~ .,
data = training, x_latency = testing))
expect_error(cv_curegmifs(Surv(Time, Censor) ~ .,
data = training, x_latency = training,
model = "cox"))
expect_error(cv_curegmifs(Surv(Time, Censor) ~ .,
data = training, x_latency = training,
penalty_factor_inc = penalty))
expect_error(cv_curegmifs(Surv(Time, Censor) ~ .,
data = training, x_latency = training,
fdr_control = TRUE, fdr = 1.2))
withr::local_seed(16)
temp <- generate_cure_data(n = 100, j = 15, n_true = 3, a = 1.8, rho = 0.2)
training <- temp$training
fit.cv <- cv_curegmifs(Surv(Time, Censor) ~ .,
data = training,
x_latency = training, fdr_control = FALSE,
maxit = 450, epsilon = 0.01, n_folds = 2,
seed = 23, verbose = TRUE
)
expect_equal(round(fit.cv$rate, 6), 2.042942)
expect_equal(round(fit.cv$alpha, 6), 0.55764)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.