Nothing
x1 <- gss[1:100,] %>% specify(response = hours)
x2 <- gss[1:100,] %>% specify(hours ~ NULL)
x3 <- gss[1:100,] %>% specify(response = hours, explanatory = c(age, college))
x4 <- gss[1:100,] %>% specify(hours ~ age + college)
test_that("get_formula helper works", {
expect_false(has_attr(x1, "formula"))
expect_true(has_attr( x2, "formula"))
expect_false(has_attr(x3, "formula"))
expect_true(has_attr( x4, "formula"))
expect_equal(get_formula(x1), get_formula(x2), ignore_attr = TRUE)
expect_equal(get_formula(x3), get_formula(x4), ignore_attr = TRUE)
})
test_that("fit_linear_model helper works", {
x3_m <-
fit_linear_model(
x3,
get_formula(x3)
)
x4_m <-
fit_linear_model(
x3,
get_formula(x3)
)
expect_equal(x3_m, x4_m)
expect_equal(nrow(x3_m), 3)
expect_equal(ncol(x3_m), 2)
expect_equal(
c("term", "estimate"),
colnames(x3_m)
)
expect_equal(
c("character", "numeric"),
purrr::map_chr(x3_m, class) %>% unname()
)
expect_equal(
c("intercept", "age", "collegedegree"),
x3_m$term
)
})
test_that("fit.infer can handle generated objects", {
x3_fit <- x3 %>% fit()
x3_gen_fit <- x3 %>%
hypothesize(null = 'independence') %>%
generate(reps = 2, type = "permute")%>%
fit()
expect_equal(unique(x3_fit$term), unique(x3_gen_fit$term))
expect_equal(nrow(x3_fit) * 2, nrow(x3_gen_fit))
expect_equal(ncol(x3_fit) + 1, ncol(x3_gen_fit))
expect_equal(length(unique(x3_gen_fit$replicate)), 2)
expect_equal(
colnames(x3_fit),
colnames(x3_gen_fit)[colnames(x3_gen_fit) != "replicate"]
)
})
test_that("fit.infer messages informatively on excessive null", {
expect_snapshot(
res_ <- gss %>%
specify(hours ~ age + college) %>%
hypothesize(null = "independence") %>%
fit()
)
expect_silent(
gss %>%
specify(hours ~ age + college) %>%
fit()
)
})
test_that("fit.infer logistic regression works", {
# linear regression default works
expect_equal(
gss %>%
specify(hours ~ age + college) %>%
fit(),
gss %>%
specify(hours ~ age + college) %>%
fit(family = stats::gaussian)
)
# logistic regression default works
expect_equal(
gss %>%
specify(college ~ age + hours) %>%
fit(family = stats::binomial),
gss %>%
specify(college ~ age + hours) %>%
fit()
)
# errors informatively with multinomial response variable
expect_snapshot(error = TRUE,
gss %>%
specify(finrela ~ age + college) %>%
fit()
)
# works as expected for `generate()`d objects
fit_gen <- gss %>%
specify(college ~ age + hours) %>%
hypothesize(null = "independence") %>%
generate(type = "permute", reps = 2) %>%
fit()
fit_obs <- gss %>%
specify(college ~ age + hours) %>%
fit()
expect_equal(nrow(fit_gen), nrow(fit_obs) * 2)
expect_equal(ncol(fit_gen), ncol(fit_obs) + 1)
# responds to success argument
fit_deg <- gss %>%
specify(college ~ age + hours, success = "degree") %>%
fit()
fit_no_deg <- gss %>%
specify(college ~ age + hours, success = "no degree") %>%
fit()
expect_equal(fit_deg$term, fit_no_deg$term)
expect_equal(fit_deg$estimate, -fit_no_deg$estimate)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.