tests/testthat/test-iml-wrappers.R

library(funcml)

test_that("local_model, interaction, and surrogate return structured results", {
  set.seed(12)
  dat <- data.frame(
    y = rnorm(50),
    x = rnorm(50),
    z = rnorm(50)
  )
  dat$y <- 1.5 * dat$x - 0.2 * dat$z + rnorm(50, sd = 0.1)
  fit_obj <- fit(y ~ x + z, data = dat, model = "glm")

  loc <- interpret(fit_obj, dat, method = "local_model", newdata = dat[1, , drop = FALSE], nsamples = 20, k = 2)
  ia <- interpret(fit_obj, dat, method = "interaction", nsamples = 30, grid_size = 8)
  sur <- interpret(fit_obj, dat, method = "surrogate", maxdepth = 2)

  expect_s3_class(loc, "funcml_iml_local_model")
  expect_true(all(c("results", "fidelity", "weights", "model") %in% names(loc$result)))
  expect_true(all(c("feature", "beta", "effect") %in% names(loc$result$results)))

  expect_s3_class(ia, "funcml_interaction")
  expect_true(all(c("results", "anchor_feature") %in% names(ia$result)))
  expect_true(all(c("feature", "interaction") %in% names(ia$result$results)))

  expect_s3_class(sur, "funcml_surrogate")
  expect_true(all(c("model", "fidelity") %in% names(sur$result)))
})

Try the funcml package in your browser

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

funcml documentation built on Aug. 22, 2026, 5:08 p.m.