# sptcv_cstf ------------------------------------------------------------------- # 2D --------------------------------------------------------------------------- test_that("plot() works for 'sptcv_cstf' 2D - time_var", { skip_if_not_installed("vdiffr") # for some reason linux and windows svgs differ skip_on_os("linux") skip_on_os("windows") tsk_cookfarm_sub$set_col_roles("Date", roles = "time") tsk_cookfarm_sub$col_roles$space = character() rsp = rsmp("sptcv_cstf", folds = 4) rsp$instantiate(tsk_cookfarm_sub) p1 = autoplot(rsp, task = tsk_cookfarm_sub, sample_fold_n = 3L) p2 = autoplot(rsp, tsk_cookfarm_sub, 1, plot3D = FALSE, sample_fold_n = 3L) # plot() would force image printing here p3 = suppressMessages( autoplot(rsp, tsk_cookfarm_sub, fold_id = c(1, 2), sample_fold_n = 3L) ) expect_true(is.ggplot(p1)) expect_true(is.ggplot(p2)) expect_list(p3) p4 = autoplot(rsp, tsk_cookfarm_sub, repeats_id = 2, sample_fold_n = 3L) p5 = autoplot(rsp, tsk_cookfarm_sub, fold_id = 1, repeats_id = 2, sample_fold_n = 3L) ### sample_fold_nj p7 = autoplot(rsp, tsk_cookfarm_sub, sample_fold_n = 3L) p8 = autoplot(rsp, tsk_cookfarm_sub, fold_id = 1, sample_fold_n = 3L) p9 = autoplot(rsp, tsk_cookfarm_sub, fold_id = c(1, 2), sample_fold_n = 3L) vdiffr::expect_doppelganger("SptCVCstf 2D time_var all test sets", p1) vdiffr::expect_doppelganger("SptCVCstf 2D time_var - Fold 1", p2) vdiffr::expect_doppelganger("SptCVCstf 2D time_var - Fold 1-2", p3) vdiffr::expect_doppelganger("SptCVCstf 2D time_var - Fold 1-2, Rep 2", p4) vdiffr::expect_doppelganger("SptCVCstf 2D time_var - Fold 1, Rep 2", p5) ### sample_fold_n vdiffr::expect_doppelganger("SptCVCstf 2D time_var - sample_fold_n", p7) vdiffr::expect_doppelganger("SptCVCstf 2D time_var - Fold 1 - sample_fold_n", p8) vdiffr::expect_doppelganger("SptCVCstf 2D time_var - Fold 1-2 - sample_fold_n", p9) }) test_that("plot() works for 'sptcv_cstf' 2D - space_var", { skip_if_not_installed("vdiffr") # for some reason linux and windows svgs differ skip_on_os("linux") skip_on_os("windows") tsk_cookfarm_sub$col_roles$time = character() tsk_cookfarm_sub$set_col_roles("SOURCEID", "space") rsp = rsmp("repeated_sptcv_cstf", folds = 4, repeats = 2) rsp$instantiate(tsk_cookfarm_sub) p1 = autoplot(rsp, task = tsk_cookfarm_sub, sample_fold_n = 3L) p2 = autoplot(rsp, tsk_cookfarm_sub, 1, plot3D = FALSE, sample_fold_n = 3L) # plot() would force image printing here p3 = autoplot(rsp, tsk_cookfarm_sub, c(1, 2), sample_fold_n = 3L) expect_true(is.ggplot(p1)) expect_true(is.ggplot(p2)) expect_list(p3) p4 = autoplot(rsp, tsk_cookfarm_sub, repeats_id = 2, sample_fold_n = 3L) p5 = autoplot(rsp, tsk_cookfarm_sub, fold_id = 1, repeats_id = 2, sample_fold_n = 3L) vdiffr::expect_doppelganger("SptCVCstf 2D space_var all test sets", p1) vdiffr::expect_doppelganger("SptCVCstf 2D space_var - Fold 1", p2) vdiffr::expect_doppelganger("SptCVCstf 2D space_var - Fold 1-2", p3) vdiffr::expect_doppelganger("RepSptCVCstf 2D space_var - Fold 1-2, Rep 2", p4) vdiffr::expect_doppelganger("RepSptCVCstf 2D space_var - Fold 1, Rep 2", p5) }) # 3D --------------------------------------------------------------------------- test_that("plot() works for 'sptcv_cstf'", { skip_if_not_installed("vdiffr") # only use Date for plotting, not for partitioning tsk_cookfarm_sub$col_roles$feature = setdiff(tsk_cookfarm_sub$col_roles$feature, "Date") tsk_cookfarm_sub$col_roles$time = character() rsp = rsmp("sptcv_cstf", folds = 4) expect_error(autoplot(rsp, task = tsk_cookfarm_sub, plot3D = TRUE)) p2 = suppressWarnings( autoplot(rsp, tsk_cookfarm_sub, 1, plot3D = TRUE, plot_time_var = "Date") ) # plot() would force image printing here p3 = suppressWarnings( suppressMessages(autoplot(rsp, tsk_cookfarm_sub, c(1, 2), plot3D = TRUE, plot_time_var = "Date")) ) p4 = suppressWarnings( suppressMessages(autoplot(rsp, tsk_cookfarm_sub, 1, plot3D = TRUE, plot_time_var = "Date", sample_fold_n = 200L)) ) # test error if neither time nor plot col roles are defined # only use Date for plotting, not for partitioning tsk_cookfarm_sub$col_roles$time = character() expect_error(autoplot(rsp, tsk_cookfarm_sub, 1, plot3D = TRUE)) expect_s3_class(p2, "plotly") expect_list(p3) expect_s3_class(p4, "plotly") ### sample_fold_n # p7 omitted because fold_id is required for this option # p7 = autoplot(rsp, tsk_cookfarm_sub, sample_fold_n = 3L, plot3D = TRUE) p8 = suppressWarnings( autoplot(rsp, tsk_cookfarm_sub, fold_id = 1, sample_fold_n = 3L, plot3D = TRUE, plot_time_var = "Date") ) p9 = suppressWarnings( autoplot(rsp, tsk_cookfarm_sub, fold_id = c(1, 2), sample_fold_n = 3L, plot3D = TRUE, , plot_time_var = "Date") ) # vdiffr::expect_doppelganger("SptCVCstf all test sets", p1) suppressWarnings(vdiffr::expect_doppelganger("SptCVCstf 3d time var - Fold 1", p2)) suppressWarnings(vdiffr::expect_doppelganger("SptCVCstf 3d time var - Fold 1-2", p3)) suppressWarnings(vdiffr::expect_doppelganger("SptCVCstf 3d time var - Fold 1 - sample_fold_n", p4)) ### sample_fold_n expect_s3_class(p8, "plotly") expect_list(p9) expect_class(p9[[1]], "plotly") expect_class(p9[[2]], "plotly") vdiffr::expect_doppelganger("SptCVCstf 3D time_var - Fold 1 - sample_fold_n", p8) vdiffr::expect_doppelganger("SptCVCstf 3D time_var - Fold 1-2 - sample_fold_n", p9) }) test_that("plot() works for 'repeated_spcv_cstf'", { skip_if_not_installed("vdiffr") tsk_cookfarm_sub$col_roles$time = "Date" tsk_cookfarm_sub$col_roles$space = "SOURCEID" rsp = rsmp("repeated_sptcv_cstf", folds = 4, repeats = 2) rsp$instantiate(tsk_cookfarm_sub) expect_error(autoplot(rsp, task = tsk_cookfarm_sub, plot3D = TRUE)) p2 = suppressWarnings( autoplot(rsp, tsk_cookfarm_sub, 1, show_omitted = TRUE, plot3D = TRUE, repeats_id = 1) # missing on purpose for codecov reasons ) p3 = suppressWarnings( suppressMessages(autoplot(rsp, tsk_cookfarm_sub, c(1, 2), plot3D = TRUE)) ) p4 = autoplot(rsp, tsk_cookfarm_sub, c(1, 2), crs = 4326, plot_as_grid = FALSE, repeats_id = 2, plot3D = TRUE) expect_s3_class(p2, "plotly") expect_list(p3) p5 = suppressWarnings( autoplot(rsp, tsk_cookfarm_sub, fold_id = 1, repeats_id = 2, plot3D = TRUE) ) p6 = suppressWarnings( autoplot(rsp, tsk_cookfarm_sub, 1, show_omitted = TRUE, plot3D = TRUE, sample_fold_n = 200L) ) expect_s3_class(p5, "plotly") # vdiffr::expect_doppelganger("RepSptCVCstf all test sets", p1) suppressWarnings(vdiffr::expect_doppelganger("RepSptCVCstf Fold 1 Rep 1 - show omitted", p2)) suppressWarnings(vdiffr::expect_doppelganger("RepSptCVCstf - Fold 1-2 Rep 1", p3)) suppressWarnings(vdiffr::expect_doppelganger("RepSptCVCstf - Fold 1-2, Rep 2", p4)) suppressWarnings(vdiffr::expect_doppelganger("RepSptCVCstf - Fold 1, Rep 2", p5)) suppressWarnings(vdiffr::expect_doppelganger("RepSptCVCstf Fold 1 Rep 1 - sample_fold_n", p6)) }) test_that("autoplot time + space", { skip_if_not_installed("sf") skip_if_not_installed("patchwork") skip_if_not_installed("ggtext") tsk_cookfarm_sub$set_col_roles("Date", roles = "time") tsk_cookfarm_sub$set_col_roles("SOURCEID", roles = "space") rsp = rsmp("sptcv_cstf", folds = 4) rsp$instantiate(tsk_cookfarm_sub) # without omitted, we have no values on the y-axis and the plot is not shown p1 = suppressWarnings( autoplot(rsp, tsk_cookfarm_sub, fold_id = 4, show_omitted = TRUE, plot3D = TRUE) ) suppressWarnings(vdiffr::expect_doppelganger("SptCVCstf - + omitted points, 3D", p1)) }) # spcv_disc -------------------------------------------------------------------- test_that("plot() works for 'spcv_disc'", { skip_if_not_installed("vdiffr") # geom_sf() is causing troubles with vdiffr # https://github.com/r-lib/vdiffr/issues/63 skip_on_ci() set.seed(42) task = tsk("ecuador") rsp = rsmp("repeated_spcv_disc", folds = 4, radius = 200, buffer = 200, repeats = 2) rsp$instantiate(task) p1 = autoplot(rsp, task = task) p2 = autoplot(rsp, task, 1) # plot() would force image printing here p3 = autoplot(rsp, task, c(1, 2)) p4 = suppressWarnings( autoplot(rsp, task, 1, show_omitted = TRUE) ) expect_true(is.ggplot(p1)) expect_true(is.ggplot(p2)) expect_list(p3) expect_true(is.ggplot(p4)) p5 = autoplot(rsp, task, repeats_id = 2) p6 = autoplot(rsp, task, fold_id = 1, repeats_id = 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) vdiffr::expect_doppelganger("SpCVDisc all test sets", p1) vdiffr::expect_doppelganger("SpCVDisc Fold 1", p2) vdiffr::expect_doppelganger("SpCVDisc Fold 1-2", p3) vdiffr::expect_doppelganger("SpCVDisc show_omitted", p4) vdiffr::expect_doppelganger("RepSpCVDisc - Fold 1-2, Rep 2", p5) vdiffr::expect_doppelganger("RepSpCVDisc - Fold 1, Rep 2", p6) vdiffr::expect_doppelganger("RepSpCVDisc - Fold 1, Rep 1 - sample_n_fold", p7) ### sample_fold_n vdiffr::expect_doppelganger("RepSpCVDisc - sample_fold_n", p7) vdiffr::expect_doppelganger("RepSpCVDisc - Fold 1 - sample_fold_n", p8) vdiffr::expect_doppelganger("RepSpCVDisc - Fold 1-2 - sample_fold_n", p9) }) # spcv_tiles -------------------------------------------------------------------- test_that("plot() works for 'spcv_tiles'", { skip_if_not_installed("vdiffr") # geom_sf() is causing troubles with vdiffr # https://github.com/r-lib/vdiffr/issues/63 skip_on_ci() set.seed(42) task = tsk("ecuador") rsp = rsmp("repeated_spcv_tiles", nsplit = c(4L, 3L), min_n = 50, reassign = FALSE, repeats = 2) rsp$instantiate(task) p1 = autoplot(rsp, task = task) p2 = autoplot(rsp, task, 1) # plot() would force image printing here p3 = autoplot(rsp, task, c(1, 2)) p4 = suppressWarnings( autoplot(rsp, task, 1, show_omitted = TRUE) ) expect_true(is.ggplot(p1)) expect_true(is.ggplot(p2)) expect_list(p3) expect_true(is.ggplot(p4)) p5 = autoplot(rsp, task, c(1, 2), repeats_id = 2) p6 = autoplot(rsp, task, fold_id = 1, repeats_id = 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) vdiffr::expect_doppelganger("RepSpCVTiles all test sets", p1) vdiffr::expect_doppelganger("RepSpCVTiles Fold 1", p2) vdiffr::expect_doppelganger("RepSpCVTiles Fold 1-2", p3) vdiffr::expect_doppelganger("RepSpCVTiles show_omitted", p4) vdiffr::expect_doppelganger("RepSpCVTiles - Fold 1-2, Rep 2", p5) vdiffr::expect_doppelganger("RepSpCVTiles - Fold 1, Rep 2", p6) vdiffr::expect_doppelganger("RepSpCVTiles - sample_fold_n", p7) vdiffr::expect_doppelganger("RepSpCVTiles - Fold 1 - sample_fold_n", p8) vdiffr::expect_doppelganger("RepSpCVTiles - Fold 1-2 - sample_fold_n", p9) }) # spcv_knndm -------------------------------------------------------------------- test_that("plot() works for 'spcv_knndm'", { skip_if_not_installed("vdiffr") set.seed(42) simarea = list(matrix(c(0, 0, 0, 100, 100, 100, 100, 0, 0, 0), ncol = 2, byrow = TRUE)) simarea = sf::st_polygon(simarea) train_points = sf::st_sample(simarea, 1000, type = "random") train_points = sf::st_as_sf(train_points) train_points$target = as.factor(sample(c("TRUE", "FALSE"), 1000, replace = TRUE)) pred_points = sf::st_sample(simarea, 1000, type = "regular") task = mlr3spatial::as_task_classif_st(sf::st_as_sf(train_points), "target", positive = "TRUE") rsp = rsmp("repeated_spcv_knndm", folds = 3, repeats = 5, predpoints = pred_points) suppressMessages(suppressWarnings(rsp$instantiate(task))) set.seed(42) p1 = autoplot(rsp, task = task) p2 = autoplot(rsp, task, 1) # plot() would force image printing here p3 = autoplot(rsp, task, c(1, 2)) expect_true(is.ggplot(p1)) expect_true(is.ggplot(p2)) expect_list(p3) p5 = autoplot(rsp, task, repeats_id = 2) p6 = autoplot(rsp, task, fold_id = 1, repeats_id = 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) vdiffr::expect_doppelganger("SpCVKnndm all test sets", p1) vdiffr::expect_doppelganger("SpCVKnndm Fold 1", p2) vdiffr::expect_doppelganger("SpCVKnndm Fold 1-2", p3) vdiffr::expect_doppelganger("RepSpCVKnndm - Fold 1-2, Rep 2", p5) vdiffr::expect_doppelganger("RepSpCVKnndm - Fold 1, Rep 2", p6) vdiffr::expect_doppelganger("RepSpCVKnndm - Fold 1, Rep 1 - sample_n_fold", p7) ### sample_fold_n vdiffr::expect_doppelganger("RepSpCVKnndm - sample_fold_n", p7) vdiffr::expect_doppelganger("RepSpCVKnndm - Fold 1 - sample_fold_n", p8) vdiffr::expect_doppelganger("RepSpCVKnndm - Fold 1-2 - sample_fold_n", p9) })