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