df <- mtcars df$cyl <- paste0("cyl", df$cyl) has_alert <- function(...) tidypredict_test(...)$alert test_that("Individual prediction difference is never above 1e-12", { expect_false(has_alert(glm(am ~ wt + cyl, data = df, family = "gaussian"))) expect_false(has_alert(glm(am ~ wt + disp, data = df, family = "gaussian"))) expect_false(has_alert(glm(am ~ wt + cyl, data = df, family = "binomial"))) expect_false(has_alert(glm(am ~ wt + disp + cyl, data = df, family = "binomial"))) }) test_that("Intervals return a call", { expect_equal( class(tidypredict_interval(glm(am ~ cyl * wt + mpg, data = mtcars, family = "gaussian")))[1], "call" ) }) test_that("tidypredict works when variable names are subset of other variables", { df2 <- df df2$wt_sq <- df2$wt^2 df2$char_cyl <- as.character(df2$cyl) set.seed(22) df2$char_cyl_2 <- sample(letters[1:3], size = nrow(df2), replace = TRUE) model4 <- suppressWarnings(glm( am ~ wt + wt_sq + char_cyl + char_cyl_2, data = df2, family = "binomial" )) expect_silent(tidypredict_fit(model4)) expect_false(tidypredict_test(model4)$alert) }) test_that("Model can be saved and re-loaded", { model <- glm(am ~ wt + disp + cyl, data = df, family = "binomial") mp <- tempfile(fileext = ".yml") yaml::write_yaml(parse_model(model), mp) l <- yaml::read_yaml(mp) pm <- as_parsed_model(l) expect_snapshot(tidypredict_fit(pm)) })