load(test_path("mars_model.RData")) # ------------------------------------------------------------------------------ test_that('required packages', { rlang::local_options(lifecycle_verbosity = "quiet") glmn <- linear_reg() %>% set_engine("glmnet") expect_equal(required_pkgs(glmn), c("parsnip", "glmnet")) expect_equal(required_pkgs(glmn, infra = FALSE), c("glmnet")) expect_snapshot(error = TRUE, { expect_equal(req_pkgs(glmn), "glmnet") }) lm_fit <- linear_reg() %>% set_engine("lm") %>% fit(mpg ~ ., data = mtcars) expect_equal(required_pkgs(lm_fit), c("parsnip", "stats")) expect_equal(required_pkgs(lm_fit, infra = FALSE), c("stats")) expect_snapshot(error = TRUE, { expect_equal(req_pkgs(lm_fit), "stats") }) }) # ------------------------------------------------------------------------------ test_that('missing packages', { has_earth <- parsnip:::is_installed("earth") if (has_earth) { expect_error(predict(mars_model, mtcars[1:3, -1]), regexp = NA) } else { expect_error(predict(mars_model, mtcars[1:3, -1]), regexp = "earth") expect_true(any(names(sessionInfo()$loadedOnly) == "earth")) } mars_model$spec$method$libs <- "rootveggie" expect_error(predict(mars_model, mtcars[1:3, -1]), regexp = "rootveggie") })