test_that("fit_temkin converges and returns sensible R2", { Ce <- c(2, 5, 10, 20, 35, 50, 70) qe <- c(0.8, 1.6, 2.3, 3.0, 3.6, 4.0, 4.4) fit <- fit_temkin(Ce, qe) expect_true(fit$R2 > 0.9) expect_true(fit$KT > 0) }) test_that("fit_dr converges and E is in a plausible range", { Ce <- c(2, 5, 10, 20, 35, 50, 70) qe <- c(0.8, 1.6, 2.3, 3.0, 3.6, 4.0, 4.4) fit <- fit_dr(Ce, qe) expect_true(fit$qs > 0) expect_true(is.finite(fit$E)) }) test_that("fit_sips recovers parameters close to Langmuir when n approx 1", { set.seed(5) Ce <- c(2, 5, 10, 20, 35, 50, 70, 90) qe <- (5 * 0.15 * Ce) / (1 + 0.15 * Ce) + stats::rnorm(length(Ce), 0, 0.02) fit <- fit_sips(Ce, qe) expect_true(fit$R2 > 0.95) expect_equal(fit$n, 1, tolerance = 0.5) }) test_that("fit_sips errors with too few points", { expect_error(fit_sips(c(1, 2, 3), c(1, 2, 3)), "at least 4") })