test_that("can `fit()` a workflow with a recipe", {
rec <- recipes::recipe(mpg ~ cyl, mtcars)
mod <- parsnip::linear_reg()
mod <- parsnip::set_engine(mod, "lm")
workflow <- workflow()
workflow <- add_recipe(workflow, rec)
workflow <- add_model(workflow, mod)
result <- fit(workflow, mtcars)
expect_is(result$fit$fit, "model_fit")
expect_equal(
coef(result$fit$fit$fit),
coef(lm(formula = mpg ~ cyl, data = mtcars))
)
})
test_that("can `fit()` a workflow with a formula", {
mod <- parsnip::linear_reg()
mod <- parsnip::set_engine(mod, "lm")
workflow <- workflow()
workflow <- add_formula(workflow, mpg ~ cyl)
workflow <- add_model(workflow, mod)
result <- fit(workflow, mtcars)
expect_is(result$fit$fit, "model_fit")
expect_equal(
coef(result$fit$fit$fit),
coef(lm(formula = mpg ~ cyl, data = mtcars))
)
})
test_that("missing `data` argument has a nice error", {
mod <- parsnip::linear_reg()
mod <- parsnip::set_engine(mod, "lm")
workflow <- workflow()
workflow <- add_formula(workflow, mpg ~ cyl)
workflow <- add_model(workflow, mod)
expect_error(fit(workflow), "`data` must be provided to fit a workflow")
})
test_that("cannot fit without a pre stage", {
mod <- parsnip::linear_reg()
mod <- parsnip::set_engine(mod, "lm")
workflow <- workflow()
workflow <- add_model(workflow, mod)
expect_error(fit(workflow, mtcars), "must have a formula or recipe")
})
test_that("cannot fit without a fit stage", {
workflow <- workflow()
workflow <- add_formula(workflow, mpg ~ cyl)
expect_error(fit(workflow, mtcars), "must have a model")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.