Nothing
context("summary")
test_that("SLOPE object contains n_observations and n_predictors", {
fit <- SLOPE(bodyfat$x, bodyfat$y)
expect_true("n_observations" %in% names(fit))
expect_true("n_predictors" %in% names(fit))
expect_equal(fit$n_observations, nrow(bodyfat$x))
expect_equal(fit$n_predictors, ncol(bodyfat$x))
})
test_that("summary displays observations and predictors correctly", {
fit <- SLOPE(heart$x, heart$y)
s <- summary(fit)
expect_equal(s$n_obs, nrow(heart$x))
expect_equal(s$n_predictors, ncol(heart$x))
})
test_that("summary works for different families", {
# Gaussian
fit_gaussian <- SLOPE(bodyfat$x, bodyfat$y)
s_gaussian <- summary(fit_gaussian)
expect_equal(s_gaussian$n_obs, nrow(bodyfat$x))
expect_equal(s_gaussian$n_predictors, ncol(bodyfat$x))
# Binomial
fit_binomial <- SLOPE(heart$x, heart$y, family = "binomial")
s_binomial <- summary(fit_binomial)
expect_equal(s_binomial$n_obs, nrow(heart$x))
expect_equal(s_binomial$n_predictors, ncol(heart$x))
# Multinomial
fit_multi <- SLOPE(wine$x, wine$y, family = "multinomial")
s_multi <- summary(fit_multi)
expect_equal(s_multi$n_obs, nrow(wine$x))
expect_equal(s_multi$n_predictors, ncol(wine$x))
})
test_that("print.summary_SLOPE runs without error", {
fit <- SLOPE(heart$x, heart$y)
s <- summary(fit)
expect_output(print(s), "Observations:")
expect_output(print(s), "Predictors:")
expect_output(print(s), "Path summary")
})
test_that("TrainedSLOPE summary works correctly", {
tune <- cvSLOPE(
subset(mtcars, select = c("mpg", "drat", "wt")),
mtcars$hp,
q = c(0.1, 0.2),
n_folds = 5,
n_repeats = 2
)
s <- summary(tune)
expect_s3_class(s, "summary_TrainedSLOPE")
expect_true("call" %in% names(s))
expect_true("measure" %in% names(s))
expect_true("optima" %in% names(s))
expect_true("n_folds" %in% names(s))
expect_true("n_repeats" %in% names(s))
expect_true("n_models" %in% names(s))
expect_equal(s$n_folds, 5)
expect_equal(s$n_repeats, 2)
})
test_that("print.summary_TrainedSLOPE runs without error", {
tune <- cvSLOPE(
subset(mtcars, select = c("mpg", "drat", "wt")),
mtcars$hp,
q = c(0.1, 0.2),
n_folds = 5
)
s <- summary(tune)
expect_output(print(s), "Cross-validation:")
expect_output(print(s), "Folds:")
expect_output(print(s), "Models evaluated:")
expect_output(print(s), "Performance measure:")
expect_output(print(s), "Optimal parameters:")
})
test_that("refit works for TrainedSLOPE objects", {
x <- bodyfat$x
y <- bodyfat$y
tune <- trainSLOPE(x, y, q = c(0.1, 0.2), measure = c("mse", "mae"), number = 3)
fit1 <- refit(tune, x, y)
expect_s3_class(fit1, "SLOPE")
expect_s3_class(fit1, "GaussianSLOPE")
expect_equal(length(fit1$alpha), 1)
fit2 <- refit(tune, x, y, measure = "mae")
expect_s3_class(fit2, "SLOPE")
})
test_that("refit errors on invalid measure", {
tune <- trainSLOPE(bodyfat$x, bodyfat$y, q = 0.1, measure = "mse", number = 3)
expect_error(
refit(tune, bodyfat$x, bodyfat$y, measure = "invalid"),
"measure 'invalid' not found"
)
})
test_that("cvSLOPE stores refitted model when refit = TRUE", {
tune <- cvSLOPE(
bodyfat$x,
bodyfat$y,
q = c(0.1, 0.2),
n_folds = 3,
refit = TRUE
)
expect_true("model" %in% names(tune))
expect_s3_class(tune$model, "SLOPE")
})
test_that("cvSLOPE does not store model when refit = FALSE", {
tune <- cvSLOPE(
bodyfat$x,
bodyfat$y,
q = c(0.1, 0.2),
n_folds = 3,
refit = FALSE
)
expect_false("model" %in% names(tune))
})
test_that("trainSLOPE still stores model", {
tune <- trainSLOPE(bodyfat$x, bodyfat$y, q = 0.1, number = 3)
expect_true("model" %in% names(tune))
expect_s3_class(tune$model, "SLOPE")
})
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.