test_that("learner methods", {
learner = lrn("classif.debug")
task = tsk("iris")
expect_false(learner_marshaled(learner))
learner$train(task)
expect_false(learner_marshaled(learner))
learner$marshal()
expect_true(learner_marshaled(learner))
learner$unmarshal()
expect_false(learner_marshaled(learner))
})
test_that("default method does nothing", {
x = 1
expect_equal(x, marshal_model(x))
})
test_that("marshaling a marshaled object does nothing", {
x = 1
xm = marshal_model(x)
expect_equal(marshal_model(xm), xm)
})
test_that("unmarshaling an unmarshaled object does nothing", {
x = 1
xm = marshal_model(x)
expect_equal(unmarshal_model(xm), x)
expect_equal(unmarshal_model(unmarshal_model(xm)), x)
})
test_that("marshaling for LearnerClassif", {
task = tsk("iris")
learner = lrn("classif.debug")
learner$train(task)
expect_false(learner$marshaled)
learner$marshal()
expect_true(learner$marshaled)
learner$unmarshal()
expect_learner(learner, task)
})
test_that("marshal count works for LearnerClassifDebug", {
# to mock that marshaling behaves as expected, we need to be know how often it happened
# note that this means that marshal_model modifies the model in a permanent way, i.e. this is not reversed by
# unmarshal_model.
learner = lrn("classif.debug", count_marshaling = TRUE)
task = tsk("iris")
learner$train(task)
expect_equal(learner$model$marshal_count, 0)
learner$marshal()$unmarshal()
expect_equal(learner$model$marshal_count, 1)
learner$marshal()$unmarshal()
expect_equal(learner$model$marshal_count, 2)
learner2 = lrn("classif.debug", count_marshaling = FALSE)
learner2$train(task)
expect_true(is.null(learner2$model$marshal_count))
model1 = learner2$model
model2 = learner2$marshal()$unmarshal()$model
expect_equal(model1, model2)
})
test_that("printer", {
expect_output(print(lrn("classif.debug")$train(tsk("iris"))$marshal()$model), "<classif.debug_model_marshaled>")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.