Nothing
# generic tests
test_that("errors are thrown for non-valid argument settings", {
skip_if_not_installed("sf")
skip_if_not_installed("patchwork")
skip_if_not_installed("ggtext")
task = test_make_twoclass_task()
# type does not matter here
rsp = rsmp("spcv_coords")
rsp$instantiate(task)
# these error checks apply to all resampling methods.
expect_error(plot(rsp, task, 30))
expect_error(plot(rsp, task, c(1, 30)))
expect_list(autoplot(rsp, task, c(1, 2), plot_as_grid = FALSE))
})
# cv ---------------------------------------------------------------------------
test_that("plot() works for 'cv'", {
skip_if_not_installed("vdiffr")
set.seed(42)
plots = prepare_autoplot("cv", folds = 4)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(plots$rsp, plots$task)
p2 = autoplot(plots$rsp, plots$task, 1)
p3 = autoplot(plots$rsp, plots$task, c(1, 2))
### sample_fold_n
p7 = autoplot(plots$rsp, plots$task, sample_fold_n = 3L)
p8 = autoplot(plots$rsp, plots$task, fold_id = 1, sample_fold_n = 3L)
p9 = autoplot(plots$rsp, plots$task, fold_id = c(1, 2), sample_fold_n = 3L)
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p2))
vdiffr::expect_doppelganger("CV all test sets", p1)
vdiffr::expect_doppelganger("CV - Fold 1", p2)
vdiffr::expect_doppelganger("CV - Fold 1-2", p3)
### sample_fold_n
vdiffr::expect_doppelganger("CV - sample_fold_n", p7)
vdiffr::expect_doppelganger("CV - Fold 1 - sample_fold_n", p8)
vdiffr::expect_doppelganger("CV - Fold 1-2 - sample_fold_n", p9)
})
test_that("plot() works for 'repeated-cv'", {
skip_if_not_installed("vdiffr")
set.seed(42)
plots = prepare_autoplot("repeated_cv",
folds = 4, repeats = 2)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(plots$rsp, plots$task)
p2 = autoplot(plots$rsp, plots$task, 1)
p3 = autoplot(plots$rsp, plots$task, c(1, 2))
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p2))
p4 = autoplot(plots$rsp, plots$task, repeats_id = 2)
p5 = autoplot(plots$rsp, plots$task, fold_id = 1, repeats_id = 2)
expect_true(is.ggplot(p4))
expect_true(is.ggplot(p5))
vdiffr::expect_doppelganger("RepCV all test sets", p1)
vdiffr::expect_doppelganger("RepCV Fold 1 Rep 1", p2)
vdiffr::expect_doppelganger("RepCV - Fold 1-2 Rep 1", p3)
vdiffr::expect_doppelganger("RepCV - Fold 1-2, Rep 2", p4)
vdiffr::expect_doppelganger("RepCV - Fold 1, Rep 2", p5)
})
test_that("plot() works for 'cv' with 'groups' col role", {
skip_if_not_installed("vdiffr")
set.seed(42)
# create dataset with blocking from example dataset
task = tsk("ecuador")
data_raw = task$backend$data(1:task$nrow, task$feature_names)
group = as.factor(sample(c("class1", "class2", "class3", "class4", "class5",
"class6", "class7", "class8"),
task$nrow, replace = TRUE))
task$cbind(data.table::data.table("group" = group))
task$set_col_roles("group", roles = "group")
cv = rsmp("cv", folds = 4)$instantiate(task)
p1 = autoplot(cv, task)
p2 = autoplot(cv, task, fold_id = 1)
p3 = autoplot(cv, task, fold_id = c(1, 2))
vdiffr::expect_doppelganger("CV - All test sets - groups col role", p1)
vdiffr::expect_doppelganger("CV - Fold 1 - groups col role", p2)
vdiffr::expect_doppelganger("CV - Fold 1,2 - groups col role", p3)
})
# custom cv --------------------------------------------------------------------
test_that("plot() works for 'custom_cv'", {
skip_if_not_installed("vdiffr")
set.seed(42)
task = tsk("ecuador")
breaks = quantile(task$data()$dem, seq(0, 1, length = 6))
zclass = cut(task$data()$dem, breaks, include.lowest = TRUE)
rsp = rsmp("custom_cv")
rsp$instantiate(task, f = zclass)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(rsp, task)
p2 = autoplot(rsp, task, 1)
p3 = autoplot(rsp, task, c(1, 2))
### sample_fold_n
p7 = autoplot(rsp, task, sample_fold_n = 3L)
p8 = autoplot(rsp, task, fold_id = 1, sample_fold_n = 3L)
p9 = autoplot(rsp, task, fold_id = c(1, 2), sample_fold_n = 3L)
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p3))
vdiffr::expect_doppelganger("Custom-CV all test sets", p1)
vdiffr::expect_doppelganger("Custom-CV - Fold 1", p2)
vdiffr::expect_doppelganger("Custom-CV - Fold 1-2", p3)
### sample_fold_n
vdiffr::expect_doppelganger("Custom-CV - sample_fold_n", p7)
vdiffr::expect_doppelganger("Custom-CV - Fold 1 - sample_fold_n", p8)
vdiffr::expect_doppelganger("Custom-CV - Fold 1-2 - sample_fold_n", p9)
})
# spcv_coords ------------------------------------------------------------------
test_that("plot() works for 'spcv_coords'", {
skip_if_not_installed("vdiffr")
set.seed(42)
plots = prepare_autoplot("spcv_coords", folds = 4)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(plots$rsp, plots$task)
p2 = autoplot(plots$rsp, plots$task, 1)
p3 = autoplot(plots$rsp, plots$task, c(1, 2))
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p2))
vdiffr::expect_doppelganger("SpCVCoords all test sets", p1)
vdiffr::expect_doppelganger("SpCVCoords - Fold 1", p2)
vdiffr::expect_doppelganger("SpCVCoords - Fold 1-2", p3)
})
test_that("plot() works for 'repeated_spcv_coords'", {
skip_if_not_installed("vdiffr")
set.seed(42)
plots = prepare_autoplot("repeated_spcv_coords",
folds = 4, repeats = 2)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(plots$rsp, plots$task)
p2 = autoplot(plots$rsp, plots$task, 1)
p3 = autoplot(plots$rsp, plots$task, c(1, 2))
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p2))
p4 = autoplot(plots$rsp, plots$task, repeats_id = 2)
p5 = autoplot(plots$rsp, plots$task, fold_id = 1, repeats_id = 2)
### sample_fold_n
p7 = autoplot(plots$rsp, plots$task, sample_fold_n = 3L)
p8 = autoplot(plots$rsp, plots$task, fold_id = 1, sample_fold_n = 3L)
p9 = autoplot(plots$rsp, plots$task, fold_id = c(1, 2), sample_fold_n = 3L)
expect_true(is.ggplot(p4))
expect_true(is.ggplot(p5))
vdiffr::expect_doppelganger("RepSpCVCoords all test sets", p1)
vdiffr::expect_doppelganger("RepSpCVCoords Fold 1 Rep 1", p2)
vdiffr::expect_doppelganger("RepSpCVCoords - Fold 1-2 Rep 1", p3)
vdiffr::expect_doppelganger("RepSpCVCoords - Fold 1-2, Rep 2", p4)
vdiffr::expect_doppelganger("RepSpCVCoords - Fold 1, Rep 2", p5)
### sample_fold_n
vdiffr::expect_doppelganger("RepSpCVCoords - sample_fold_n", p7)
vdiffr::expect_doppelganger("RepSpCVCoords - Fold 1 - sample_fold_n", p8)
vdiffr::expect_doppelganger("RepSpCVCoords - Fold 1-2 - sample_fold_n", p9)
})
# spcv_block -------------------------------------------------------------------
test_that("plot() works for 'spcv_block'", {
skip_if_not_installed("vdiffr")
skip_if_not_installed("blockCV")
set.seed(42)
plots = prepare_autoplot("spcv_block", cols = 2, rows = 2, folds = 4)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(plots$rsp, plots$task)
p2 = autoplot(plots$rsp, plots$task, 1)
p3 = autoplot(plots$rsp, plots$task, c(1, 2))
### sample_fold_n
p7 = autoplot(plots$rsp, plots$task, sample_fold_n = 3L)
p8 = autoplot(plots$rsp, plots$task, fold_id = 1, sample_fold_n = 3L)
p9 = autoplot(plots$rsp, plots$task, fold_id = c(1, 2), sample_fold_n = 3L)
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p2))
vdiffr::expect_doppelganger("SpCVBlock all test sets", p1)
vdiffr::expect_doppelganger("SpCVBlock - Fold 1", p2)
vdiffr::expect_doppelganger("SpCVBlock - Fold 1-2", p3)
### sample_fold_n
vdiffr::expect_doppelganger("SpCVBlock - sample_fold_n", p7)
vdiffr::expect_doppelganger("SpCVBlock - Fold 1 - sample_fold_n", p8)
vdiffr::expect_doppelganger("SpCVBlock - Fold 1-2 - sample_fold_n", p9)
})
test_that("plot() works for 'repeated_spcv_block'", {
skip_if_not_installed("vdiffr")
skip_if_not_installed("blockCV")
set.seed(42)
plots = prepare_autoplot("repeated_spcv_block",
folds = 4, range = c(2L, 4L), repeats = 2)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(plots$rsp, plots$task)
p2 = autoplot(plots$rsp, plots$task, 1)
p3 = autoplot(plots$rsp, plots$task, c(1, 2))
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p2))
p4 = autoplot(plots$rsp, plots$task, repeats_id = 2)
p5 = autoplot(plots$rsp, plots$task, fold_id = 1, repeats_id = 2)
expect_true(is.ggplot(p4))
expect_true(is.ggplot(p5))
vdiffr::expect_doppelganger("RepSpCVBlock all test sets", p1)
vdiffr::expect_doppelganger("RepSpCVBlock Fold 1 Rep 1", p2)
vdiffr::expect_doppelganger("RepSpCVBlock - Fold 1-2 Rep 1", p3)
vdiffr::expect_doppelganger("RepSpCVBlock - Fold 1-2, Rep 2", p4)
vdiffr::expect_doppelganger("RepSpCVBlock - Fold 1, Rep 2", p5)
})
test_that("autplot blockCV shows correct blocks", {
skip_if_not_installed("vdiffr")
skip_if_not_installed("blockCV")
# file size of resulting svg is too large
skip_on_cran()
# otherwise some points get removed and trigger warnings
sf::sf_use_s2(use_s2 = FALSE)
task = test_make_blockCV_test_task()
set.seed(42)
rsmp = rsmp("spcv_block",
folds = 5,
rows = 3,
cols = 4)
rsmp$instantiate(task)
p1 = autoplot(rsmp, task,
fold_id = 1, size = 0.7,
show_blocks = TRUE)
vdiffr::expect_doppelganger(
"autoplot show_blocks = TRUE show_labels = TRUE",
p1)
})
test_that("autplot blockCV shows correct blocks for repeated_cv", {
skip_if_not_installed("vdiffr")
skip_if_not_installed("blockCV")
task = test_make_blockCV_test_task()
# geom_sf() is causing troubles with vdiffr
# https://github.com/r-lib/vdiffr/issues/63
skip_on_ci()
# otherwise some points get removed and trigger warnings
sf::sf_use_s2(use_s2 = FALSE)
set.seed(42)
rsmp = rsmp("repeated_spcv_block",
folds = 5,
repeats = 2,
rows = 3,
cols = 4)
rsmp$instantiate(task)
p1 = autoplot(rsmp, task,
fold_id = 1, size = 0.7, repeats_id = 2,
show_blocks = TRUE, show_labels = TRUE)
vdiffr::expect_doppelganger(
"autoplot repeated show_blocks = TRUE show_labels = TRUE",
p1)
})
# spcv_env ---------------------------------------------------------------------
test_that("plot() works for 'spcv_env'", {
skip_if_not_installed("vdiffr")
skip_if_not_installed("blockCV")
set.seed(42)
plots = prepare_autoplot("spcv_env", folds = 4)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(plots$rsp, plots$task)
p2 = autoplot(plots$rsp, plots$task, 1)
p3 = autoplot(plots$rsp, plots$task, c(1, 2))
### sample_fold_n
p7 = autoplot(plots$rsp, plots$task, sample_fold_n = 2L)
p8 = autoplot(plots$rsp, plots$task, fold_id = 1, sample_fold_n = 2L)
p9 = autoplot(plots$rsp, plots$task, fold_id = c(1, 2), sample_fold_n = 2L)
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p2))
vdiffr::expect_doppelganger("SpCVEnv all test sets", p1)
vdiffr::expect_doppelganger("SpCVEnv - Fold 1", p2)
vdiffr::expect_doppelganger("SpCVEnv - Fold 1-2", p3)
### sample_fold_n
vdiffr::expect_doppelganger("SpCVEnv - sample_fold_n", p7)
vdiffr::expect_doppelganger("SpCVEnv - Fold 1 - sample_fold_n", p8)
vdiffr::expect_doppelganger("SpCVEnv - Fold 1-2 - sample_fold_n", p9)
})
test_that("plot() works for 'repeated_spcv_env'", {
skip_if_not_installed("vdiffr")
skip_if_not_installed("blockCV")
set.seed(42)
plots = prepare_autoplot("repeated_spcv_env",
folds = 4, repeats = 2)
# autoplot() is used instead of plot() to prevent side-effect plotting
p1 = autoplot(plots$rsp, plots$task)
p2 = autoplot(plots$rsp, plots$task, 1)
p3 = autoplot(plots$rsp, plots$task, c(1, 2))
expect_true(is.ggplot(p1))
expect_true(is.ggplot(p2))
expect_true(is.ggplot(p2))
p4 = autoplot(plots$rsp, plots$task, repeats_id = 2)
p5 = autoplot(plots$rsp, plots$task, fold_id = 1, repeats_id = 2)
expect_true(is.ggplot(p4))
expect_true(is.ggplot(p5))
vdiffr::expect_doppelganger("RepSpCVEnv all test sets", p1)
vdiffr::expect_doppelganger("RepSpCVEnv Fold 1 Rep 1", p2)
vdiffr::expect_doppelganger("RepSpCVEnv - Fold 1-2 Rep 1", p3)
vdiffr::expect_doppelganger("RepSpCVEnv - Fold 1-2, Rep 2", p4)
vdiffr::expect_doppelganger("RepSpCVEnv - Fold 1, Rep 2", p5)
})
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.