tests/testthat/test-zzz-methods-aic-bic.R

test_that("aic and bic work", {
  num_params <- 55
  n <- 750
  dina_log_lik <- -8642.807
  dino_log_lik <- -8361.498

  expect_equal(
    (-2 * dina_log_lik) + (2 * num_params),
    aic(rstn_dina),
    tolerance = 0.01
  )
  expect_equal(
    (-2 * dina_log_lik) + (log(n) * num_params),
    bic(rstn_dina),
    tolerance = 0.01
  )
  expect_equal(
    (-2 * dino_log_lik) + (2 * num_params),
    aic(rstn_dino),
    tolerance = 0.01
  )
  expect_equal(
    (-2 * dino_log_lik) + (log(n) * num_params),
    bic(rstn_dino),
    tolerance = 0.01
  )

  expect_equal(aic(rstn_dina), 17395.61, tolerance = 0.01)
  expect_equal(bic(rstn_dina), 17649.72, tolerance = 0.01)
  expect_equal(aic(rstn_dino), 16833.00, tolerance = 0.01)
  expect_equal(bic(rstn_dino), 17087.10, tolerance = 0.01)
})

test_that("store aic and bic", {
  # dina aic -------------------------------------------------------------------
  expect_true(rlang::is_empty(rstn_dina@criteria$aic))
  expect_true(rlang::is_empty(rstn_dina@criteria$bic))

  dina_aic <- add_criterion(rstn_dina, "aic")
  expect_false(rlang::is_empty(dina_aic@criteria$aic))
  expect_true(rlang::is_empty(dina_aic@criteria$bic))
  expect_identical(aic(rstn_dina), dina_aic@criteria$aic)
  expect_identical(aic(dina_aic), dina_aic@criteria$aic)
  expect_identical(measr_extract(dina_aic, "aic"), aic(rstn_dina))
  expect_identical(
    measr_extract(rstn_dina, "aic"),
    measr_extract(dina_aic, "aic")
  )

  # dino bic -------------------------------------------------------------------
  expect_true(rlang::is_empty(rstn_dino@criteria$aic))
  expect_true(rlang::is_empty(rstn_dino@criteria$bic))

  dino_bic <- add_criterion(rstn_dino, "bic")
  expect_false(rlang::is_empty(dino_bic@criteria$bic))
  expect_true(rlang::is_empty(dino_bic@criteria$aic))
  expect_identical(bic(rstn_dino), dino_bic@criteria$bic)
  expect_identical(bic(dino_bic), dino_bic@criteria$bic)
  expect_identical(measr_extract(dino_bic, "bic"), bic(rstn_dino))
  expect_identical(
    measr_extract(rstn_dino, "bic"),
    measr_extract(dino_bic, "bic")
  )

  dino_bic <- add_criterion(dino_bic, c("aic", "bic"), overwrite = TRUE)
  expect_false(rlang::is_empty(dino_bic@criteria$bic))
  expect_false(rlang::is_empty(dino_bic@criteria$aic))
  expect_identical(bic(rstn_dino), dino_bic@criteria$bic)
  expect_identical(bic(dino_bic), dino_bic@criteria$bic)
  expect_identical(aic(rstn_dino), dino_bic@criteria$aic)
  expect_identical(aic(dino_bic), dino_bic@criteria$aic)

  expect_equal(measr_extract(dino_bic, "aic"), 16833.00, tolerance = .0001)
  expect_equal(measr_extract(dino_bic, "bic"), 17087.10, tolerance = .0001)
})

Try the measr package in your browser

Any scripts or data that you put into this service are public.

measr documentation built on Jan. 14, 2026, 5:08 p.m.