diff --git a/DESCRIPTION b/DESCRIPTION index 1a96ef2..4465539 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -42,7 +42,8 @@ Suggests: ranger, rpart, testthat (>= 3.0.0), - xgboost + xgboost, + pryr Remotes: catboost/catboost/catboost/R-package, mlr-org/mlr3extralearners, diff --git a/tests/testthat/test_estimate_memory.R b/tests/testthat/test_estimate_memory.R new file mode 100644 index 0000000..28ab01f --- /dev/null +++ b/tests/testthat/test_estimate_memory.R @@ -0,0 +1,91 @@ +n_obs = 1e4 +n_feat = 100 +dt = runif(n_obs * n_feat) +dt = as.data.table(matrix(dt, nrow = n_obs, ncol = n_feat)) + +# classif +set(dt, j = "y", value = 0) +set(dt, i = seq_len(n_obs %/% 2), j = "y", value = 1) +task = as_task_classif(dt, target = "y") + +test_that("LearnerClassifRanger memory estimate is approximately correct", { + learner = lrn("classif.ranger") + learner$train(task) + true_mem = pryr::object_size(learner$model) + estim_mem = estimate_memory(learner, task) + + expect_true(true_mem <= estim_mem) +}) + +test_that("LearnerClassifXgboost memory estimate is approximately correct", { + learner = lrn("classif.xgboost") + learner$train(task) + true_mem = pryr::object_size(learner$model) + estim_mem = estimate_memory(learner, task) + + expect_true(true_mem <= estim_mem) +}) + +test_that("LearnerClassifCatboost memory estimate is approximately correct", { + learner = lrn("classif.catboost") + learner$train(task) + true_mem = pryr::object_size(learner$model) + estim_mem = estimate_memory(learner, task) + + expect_true(true_mem <= estim_mem) +}) + +test_that("LearnerClassifLightGBM memory estimate is approximately correct", { + learner = lrn("classif.lightgbm") + learner$train(task) + true_mem = pryr::object_size(learner$model) + estim_mem = estimate_memory(learner, task) + + expect_true(true_mem <= estim_mem) +}) + + +# regr +set(dt, j = "y", value = runif(n_obs)) +task = as_task_regr(dt, target = "y") + +test_that("LearnerRegrRanger memory estimate is approximately correct", { + learner = lrn("regr.ranger") + learner$train(task) + true_mem = pryr::object_size(learner$model) + estim_mem = estimate_memory(learner, task) + + expect_true(true_mem <= estim_mem) +}) + +test_that("LearnerRegrXgboost memory estimate is approximately correct", { + learner = lrn("regr.xgboost") + learner$train(task) + true_mem = pryr::object_size(learner$model) + estim_mem = estimate_memory(learner, task) + + expect_true(true_mem <= estim_mem) +}) + +test_that("LearnerRegrCatboost memory estimate is approximately correct", { + learner = lrn("regr.catboost") + learner$train(task) + true_mem = pryr::object_size(learner$model) + estim_mem = estimate_memory(learner, task) + + expect_true(true_mem <= estim_mem) +}) + +test_that("LearnerRegrLightGBM memory estimate is approximately correct", { + learner = lrn("regr.lightgbm") + learner$train(task) + true_mem = pryr::object_size(learner$model) + estim_mem = estimate_memory(learner, task) + + expect_true(true_mem <= estim_mem) +}) + +rm(dt) +rm(task) +rm(n_obs) +rm(n_feat)