tests/testthat/test-coef.R

test_that("interpolating coefficients works properly", {
  set.seed(3)
  xy <- SLOPE:::randomProblem(100, 10)

  # check for slope
  fit <- SLOPE(xy$x, xy$y)

  expect_s4_class(coef(fit), "dgCMatrix")
  expect_silent(coef(fit, alpha = c(0.001, 0.04)))
  # coef(fit, alpha = c(0.001, 0.04))

  # check for lasso
  fit <- SLOPE(xy$x, xy$y)

  expect_silent(coef(fit))
  expect_silent(coef(fit, lambda = c(0.2, 20)))

  # penalties are in the path already
  expect_silent(coef(fit, lambda = fit$lambda[c(2, 3)]))
})

test_that("simplify argument in coef() works as expected", {
  set.seed(1623)
  xy <- SLOPE:::randomProblem(100, 10)

  # check for slope
  fit <- SLOPE(xy$x, xy$y)

  # check simplify
  coefs <- coef(fit, simplify = TRUE)
  expect_s4_class(coefs, "dgCMatrix")

  coefs <- coef(fit, simplify = FALSE)
  expect_type(coefs, "list")
})

test_that("refitting works if exact = TRUE", {
  set.seed(1624)
  xy <- SLOPE:::randomProblem(100, 10)

  # check for slope
  fit <- SLOPE(xy$x, xy$y)

  # check simplify
  coefs <- coef(fit, alpha = 0.4, exact = TRUE, x = xy$x, y = xy$y)

  expect_s4_class(coefs, "dgCMatrix")
})
jolars/SLOPE documentation built on June 15, 2025, 1:45 p.m.