tests/testthat/test-evaluate_aic.R

test_that("calculate_aic works as expected", {

  # setup
  x <- rnorm(100, mean = 0)
  y <- rpois(n = 100, lambda = exp(x + 1))
  dat <- data.frame(x = x, y = y)
  traditional <- glm(y ~ x, family = poisson)
  traditional2 <- lm(y ~ x)
  model <- glm_model(y ~ x, poisson)
  models <- list(
    poisson_model = glm_model(y ~ x, poisson),
    linear_model = lm_model(y ~ x)
  )
  expected_AIC <- AIC(traditional)
  expected_AIC2 <- AIC(traditional2)

  # single model tests
  calc_model <- evaluate_aic(model, dat)
  expect_equal(calc_model$result, expected_AIC)
  expect_equal(calc_model$metric, "aic")

  calc_model_tbl <- evaluate_aic(model, dat, as_tibble = TRUE)
  expect_equal(calc_model_tbl$result, expected_AIC)
  expect_equal(calc_model_tbl$metric, "aic")

  # multiple model tests
  calc_fitted_models <- evaluate_aic(models, dat)
  expect_equal(calc_fitted_models$result, c(expected_AIC, expected_AIC2))
  expect_equal(calc_fitted_models$metric, c("aic", "aic"))
  expect_equal(calc_fitted_models$model_name, c("poisson_model", "linear_model"))

  # should error
  expect_error(evaluate_aic("bob"))

})
reconhub/trendeval documentation built on Jan. 12, 2023, 12:36 a.m.