tests/testthat/test_base_learner.R

context("Base learner")
testdataset <- list(
  data = toyml$dataset[, c(1,2,3,4,13)],
  labelindex = 5,
  labelname = "y3",
  mlmethod = "test",
  mldataset = "toyml"
)
testdataset$data$y3 <- as.factor(testdataset$data$y3)

test_that("test train/prediction base learner algorithms", {
  methods <- c("baseSVM", #"baseJ48",
               "baseC5.0", "baseCART", "baseRF",
               "baseNB", "baseKNN", "baseMAJORITY", "baseRANDOM")
  names(methods) <- c("svm", #"J48",
                      "C5.0", "rpart", "randomForest",
                      "naiveBayes", "baseKNN", "majorityModel", "randomModel")
  for (modelname in names(methods)) {
    class(testdataset) <- methods[modelname]
    model <- mltrain(testdataset)
    expect_is(model, modelname)
    result <- mlpredict(model, testdataset$data[11:20, 1:4])
    expect_is(result, "data.frame", label = modelname)
    expect_equal(rownames(result), as.character(11:20), label = modelname)
    expect_equal(colnames(result), c("prediction", "probability"),
                 label = modelname)
  }
  class(testdataset) <- NULL
  expect_error(mltrain(testdataset))
  expect_error(mlpredict(testdataset))
})

test_that("KNN", {
  #TODO Train with a k and predict with other k
})

test_that("Summary", {
  class(testdataset) <- "mltransformation"
  expect_equal(summary(testdataset), summary(testdataset$data))
})

Try the utiml package in your browser

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

utiml documentation built on May 31, 2021, 9:09 a.m.