tests/testthat/test-check-fixed-parameters.R

test_that("fixed prior remains unchanged during fitting", {
    model <- bkt(seed = 42, num_fits = 1, parallel = FALSE)
    model <- set_coef(model, list(mathematic = list(prior = 0.5)))
    fitted_model <- fit(
        model,
        data = simulation_test_data(),
        forgets = TRUE,
        skills = "mathematic",
        fixed = list(mathematic = list(prior = TRUE))
    )

    prior_values <- params(fitted_model)$value[params(fitted_model)$param == "prior"]
    expect_equal(as.numeric(prior_values), 0.5, tolerance = 1e-8)
})

test_that("fixed learning and forgetting rates remain unchanged", {
    model <- bkt(seed = 42, num_fits = 1, parallel = FALSE)
    model <- set_coef(model, list(mathematic = list(learns = 0.25, forgets = 0.25)))
    fitted_model <- fit(
        model,
        data = simulation_test_data(),
        forgets = TRUE,
        fixed = list(mathematic = list(learns = TRUE, forgets = TRUE))
    )
    fitted_params <- params(fitted_model)

    expect_equal(as.numeric(fitted_params$value[fitted_params$param == "learns"]), 0.25)
    expect_equal(as.numeric(fitted_params$value[fitted_params$param == "forgets"]), 0.25)
})

test_that("fixed guess and slip rates remain unchanged", {
    model <- bkt(seed = 42, num_fits = 1, parallel = FALSE)
    model <- set_coef(model, list(mathematic = list(guesses = 0.025, slips = 0.025)))
    fitted_model <- fit(
        model,
        data = simulation_test_data(),
        forgets = TRUE,
        fixed = list(mathematic = list(guesses = TRUE, slips = TRUE))
    )
    fitted_params <- params(fitted_model)

    expect_equal(as.numeric(fitted_params$value[fitted_params$param == "guesses"]), 0.025)
    expect_equal(as.numeric(fitted_params$value[fitted_params$param == "slips"]), 0.025)
})

Try the BKT package in your browser

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

BKT documentation built on Sept. 5, 2026, 5:07 p.m.