tests/testthat/test_mlr_learners_clust_diana.R

test_that("autotest", {
  learner = lrn("clust.diana")
  expect_learner(learner)
  task = generate_tasks(learner)
  learner$train(task[[1L]])
  expect_class(learner$model, "diana")
  expect_warning(learner$predict(task[[1L]]), "doesn't predict on new data")
})

test_that("Learner properties are respected", {
  task = tsk("usarrests")
  learner = lrn("clust.diana")
  expect_learner(learner, task)

  # test on multiple paramsets
  parset_list = list(
    list(k = 2L),
    list(k = 5L),
    list(k = 2L, metric = "manhattan"),
    list(k = 2L, stand = TRUE)
  )

  for (parset in parset_list) {
    learner$param_set$values = parset

    p = suppressWarnings(learner$train(task)$predict(task))
    expect_prediction_clust(p, learner)
  }
})

test_that("predict validates k against the training size", {
  task = tsk("usarrests")
  learner = lrn("clust.diana", k = 3L)
  suppressWarnings(learner$train(task))

  # k is bounded by the number of training observations, not the predict task's rows
  learner$param_set$values$k = task$nrow + 1L
  expect_error(learner$predict(task), sprintf("between 1 and %i", task$nrow))
})

Try the mlr3cluster package in your browser

Any scripts or data that you put into this service are public.

mlr3cluster documentation built on Sept. 17, 2026, 5:09 p.m.