# Test parametric_effects() method lev_nms <- c(".level", ".partial", ".se") val_nms <- c(".value", ".partial", ".se") both_nms <- c(".level", ".value", ".partial", ".se") test_that("parametric_effects works for m_2_fac", { expect_message( peff <- parametric_effects(m_2_fac, envir = teardown_env(), data = df_2_fac), "Interaction terms are not currently supported." ) expect_s3_class(peff, class = c( "parametric_effects", "tbl_df", "tbl", "data.frame" )) expect_identical(ncol(peff), 5L) expect_identical(nrow(peff), 7L) expect_named(peff, c("term", "type", lev_nms)) }) test_that("parametric_effects works for m_para_sm", { expect_message( peff <- parametric_effects(m_para_sm, data = df_2_fac, envir = teardown_env()), "Interaction terms are not currently supported." ) expect_s3_class(peff, class = c( "parametric_effects", "tbl_df", "tbl", "data.frame" )) expect_identical(ncol(peff), 6L) expect_identical(nrow(peff), 407L) expect_named(peff, c("term", "type", both_nms)) }) test_that("parametric_effects works for m_2_fac select term", { expect_silent(peff <- parametric_effects(m_2_fac, term = "fac", data = df_2_fac, envir = teardown_env() )) expect_s3_class(peff, class = c( "parametric_effects", "tbl_df", "tbl", "data.frame" )) expect_identical(ncol(peff), 5L) expect_identical(nrow(peff), 3L) expect_named(peff, c("term", "type", lev_nms)) }) test_that("parametric_effects works for m_para_sm select term", { expect_silent(peff <- parametric_effects(m_para_sm, term = "fac", data = df_2_fac, envir = teardown_env() )) expect_s3_class(peff, class = c( "parametric_effects", "tbl_df", "tbl", "data.frame" )) expect_identical(ncol(peff), 5L) expect_identical(nrow(peff), 3L) expect_named(peff, c("term", "type", lev_nms)) }) test_that("parametric_effects works with only parametric terms", { expect_message( peff <- parametric_effects(m_only_para, data = df_2_fac, envir = teardown_env() ), "Interaction terms are not currently supported." ) expect_s3_class(peff, class = c( "parametric_effects", "tbl_df", "tbl", "data.frame" )) expect_identical(ncol(peff), 6L) expect_identical(nrow(peff), 1207L) expect_named(peff, c("term", "type", both_nms)) }) test_that("parametric_effects works with weird parametric terms", { expect_silent(peff <- parametric_effects(m_poly, data = df_2_fac, envir = teardown_env() )) expect_s3_class(peff, class = c( "parametric_effects", "tbl_df", "tbl", "data.frame" )) expect_identical(ncol(peff), 6L) expect_identical(nrow(peff), 1207L) expect_named(peff, c("term", "type", both_nms)) expect_silent(peff <- parametric_effects(m_poly, transform = TRUE, data = df_2_fac, envir = teardown_env() )) expect_s3_class(peff, class = c( "parametric_effects", "tbl_df", "tbl", "data.frame" )) expect_identical(ncol(peff), 6L) expect_identical(nrow(peff), 1207L) expect_named(peff, c("term", "type", both_nms)) }) test_that("issue 212 remains fixed", { skip_on_cran() # issue #212 is about weird model terms data_212 <- quick_eg1 |> mutate(fac = factor(rep(c("a", "b"), c(200, 100)))) m_212 <- gam(y ~ fac + poly(x0, 2, raw = TRUE) + poly(x1, 2, raw = TRUE) + poly(x2, 2, raw = TRUE) + poly(x3, 2, raw = TRUE), data = data_212) expect_silent(peff <- parametric_effects(m_212, data = data_212, envir = teardown_env() )) expect_s3_class(peff, class = c( "parametric_effects", "tbl_df", "tbl", "data.frame" )) expect_identical(ncol(peff), 6L) expect_identical(nrow(peff), 1202L) expect_named(peff, c("term", "type", both_nms)) plt <- draw(peff, rug = FALSE) skip_on_ci() expect_doppelganger("testing issue 212", plt) })