context("General tests for smurf")
test_that("Test GAM penalty weights", {
formu2 <- rentm ~ p(area, pen = "gflasso", refcat = 3) + p(size, pen = "flasso") + p(year, pen = "lasso")
expect_error(suppressWarnings(glmsmurf(formu2, family = gaussian(), data = rent,
pen.weights = "gam.stand", lambda = 0.01404071,
control = list(eps = 1e-5))),
NA)
})
test_that("Test lambda1 and lambda2 penalty weights", {
expect_error(suppressWarnings(glmsmurf(formu, family = gaussian(), data = rent,
pen.weights = "glm.stand", lambda = 0.01404071,
lambda1 = 0.1, lambda2 = 0.2,
control = list(eps = 1e-5))),
NA)
})
test_that("Test low step size warning", {
expect_warning(glmsmurf(formu, family = gaussian(), data = rent,
pen.weights = "glm.stand", lambda = 0.01404071,
control = list(step = 1e-15, eps = 1e-5)),
paste0("The step size is below ", 1e-14, " and is no longer reduced. ",
"It might be better to start the algorithm with a larger step size."))
})
test_that("Test print", {
expect_error(invisible(capture.output(glmsmurf(formu, family = gaussian(), data = rent,
pen.weights = "glm.stand", lambda = 0.01404071,
control = list(print = TRUE, eps = 1e-5)))),
NA)
})
test_that("Test glmsmurf.fit", {
# Run glmsmurf.fit with ordinary matrix type (for X)
expect_error(glmsmurf.fit(X = as.matrix(munich.fit$X), y = munich.fit$y, weights = munich.fit$weights,
start = munich.fit$coefficients * runif(length(munich.fit$coefficients)),
offset = munich.fit$offset,
family = munich.fit$family,
pen.cov = munich.fit$pen.cov, n.par.cov = munich.fit$n.par.cov,
group.cov = munich.fit$group.cov, refcat.cov = munich.fit$refcat.cov,
lambda = munich.fit$lambda, pen.weights = munich.fit$pen.weights),
NA)
})
glmsmurf.fit
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.