1context("glmnet")
2
3skip_if_not_installed("modeltests")
4library(modeltests)
5
6skip_if_not_installed("glmnet")
7library(glmnet)
8
9set.seed(27)
10
11x <- matrix(rnorm(100 * 20), 100, 20)
12y <- rnorm(100)
13g <- sample(1:4, 100, replace = TRUE)
14
15fit <- glmnet(x, y)
16fit2 <- glmnet(x, g, family = "multinomial")
17
18cv_fit <- cv.glmnet(x, y)
19cv_fit2 <- cv.glmnet(x, g, family = "multinomial")
20
21test_that("glmnet tidier arguments", {
22  check_arguments(tidy.glmnet)
23  check_arguments(glance.glmnet)
24
25  check_arguments(tidy.cv.glmnet)
26  check_arguments(glance.cv.glmnet)
27})
28
29test_that("tidy.glmnet", {
30  td <- tidy(fit)
31  tdz <- tidy(fit, return_zeros = TRUE)
32
33  check_tidy_output(td)
34  check_tidy_output(tdz)
35
36  check_dims(td, expected_cols = 5)
37  check_dims(tdz, expected_cols = 5)
38
39  expect_true(all(td$estimate != 0))
40  expect_true(any(tdz$estimate == 0))
41
42  # multinomial
43
44  td2 <- tidy(fit2)
45  td2z <- tidy(fit2, return_zeros = TRUE)
46
47  check_tidy_output(td2)
48  check_tidy_output(td2z)
49
50  expect_true(all(td2$estimate != 0))
51  expect_true(any(td2z$estimate == 0))
52
53  # regression tests
54  expect_true(is.numeric(td$step) && !any(is.na(td$step)))
55  expect_true(is.numeric(td2$step) && !any(is.na(td2$step)))
56})
57
58test_that("glance.glmnet", {
59  gl <- glance(fit)
60  gl2 <- glance(fit2)
61
62  check_glance_outputs(gl, gl2)
63})
64
65test_that("tidy.cv.glmnet", {
66  td <- tidy(cv_fit)
67
68  check_tidy_output(td)
69  check_dims(td, expected_cols = 6)
70
71  # multinomial
72
73  td2 <- tidy(cv_fit2)
74
75  check_tidy_output(td2)
76  check_dims(td2, expected_cols = 6)
77})
78
79test_that("glance.cv.glmnet", {
80  gl <- glance(cv_fit)
81  gl2 <- glance(cv_fit2)
82
83  check_glance_outputs(gl, gl2)
84})
85