test_that("predict on newdata works / clust", { task = tsk("usarrests")$filter(1:40) learner = lrn("clust.featureless", num_clusters = 1L) expect_error(learner$predict(task), "trained") learner$train(task) expect_task(learner$state$train_task) newdata = tsk("usarrests")$filter(41:50)$data() # passing the task p = learner$predict_newdata(newdata = newdata, task = task) expect_data_table(as.data.table(p), nrows = 10) expect_set_equal(as.data.table(p)$row_ids, 1:10) expect_null(p$truth) # rely on internally stored task representation p = learner$predict_newdata(newdata = newdata, task = NULL) expect_data_table(as.data.table(p), nrows = 10L) expect_set_equal(as.data.table(p)$row_ids, 1:10) expect_null(p$truth) }) test_that("reset()", { task = tsk("usarrests") learner = lrn("clust.featureless", num_clusters = 2L) learner$train(task) expect_list(learner$state, names = "unique") expect_learner(learner$reset()) expect_null(learner$state) }) test_that("empty predict set (#421)", { task = tsk("usarrests") learner = lrn("clust.featureless", num_clusters = 1L) resampling = rsmp("holdout", ratio = 1) hout = resampling$instantiate(task) model = learner$train(task, hout$train_set(1)) pred = learner$predict(task, hout$test_set(1)) expect_true(any(grepl("No data to predict on", learner$log$msg, fixed = TRUE))) }) test_that("assignment saving works", { task = tsk("usarrests") learner = lrn("clust.featureless") expect_true(learner$save_assignments) learner$train(task) expect_vector(learner$assignments) expect_length(learner$assignments, task$nrow) learner$reset() learner$save_assignments = FALSE expect_false(learner$save_assignments) learner$train(task) expect_null(learner$assignments) })