test_that("fitted_flocker works correctly", {
# new data
newdat <- expand.grid(uc1 = rnorm(10),
uc2 = rnorm(10),
ec1 = rnorm(10),
species = unique(example_flocker_model_single$data$species))
# check default CI return
test_out <- fitted_flocker(example_flocker_model_single, summarise = TRUE)
expect_equal(names(test_out), c("linpred_occ", "linpred_det"))
expect_equal(dimnames(test_out$linpred_occ)[[3]], c("mean", "Q5", "Q95"))
# check varying CIs
expect_error(fitted_flocker(example_flocker_model_single, summarise = TRUE, CI = c(0, 2)),
"CI must be between zero and one inclusive")
expect_error(fitted_flocker(example_flocker_model_single, summarise = TRUE, CI = c(-1, 1)),
"CI must be between zero and one inclusive")
expect_error(fitted_flocker(example_flocker_model_single, summarise = TRUE, CI = "x"),
"CI must be numeric")
expect_error(fitted_flocker(example_flocker_model_single, summarise = TRUE, CI = 1),
"CI must be of length 2")
test_out <- fitted_flocker(example_flocker_model_single, summarise = TRUE, CI = c(.1, .8))
expect_equal(dimnames(test_out$linpred_occ)[[3]], c("mean", "Q10", "Q80"))
test_out <- fitted_flocker(example_flocker_model_single, summarise = TRUE, CI = c(.111, .88))
expect_equal(dimnames(test_out$linpred_occ)[[3]], c("mean", "Q11.1", "Q88"))
# check new_data
test_out <- fitted_flocker(example_flocker_model_single, summarise = TRUE, new_data = newdat)
expect_equal(names(test_out), c("linpred_occ", "linpred_det"))
expect_equal(names(test_out$linpred_occ), c("mean", "Q5", "Q95"))
expect_equal(names(test_out$linpred_det), c("mean", "Q5", "Q95"))
expect_equal(nrow(test_out$linpred_occ), nrow(newdat))
expect_equal(nrow(test_out$linpred_det), nrow(newdat))
new_flocker_dat <- list(data = example_flocker_model_single$data, type = "single")
class(new_flocker_dat) <- "flocker_data"
test_out2 <- fitted_flocker(example_flocker_model_single, new_data = new_flocker_dat)
test_out3 <- fitted_flocker(example_flocker_model_single)
expect_identical(test_out2, test_out3)
# check error for missing predictor column
expect_error(fitted_flocker(example_flocker_model_single, new_data = newdat[,-1]))
# check non-summary version:
test_out <- fitted_flocker(example_flocker_model_single)
expect_equal(dimnames(test_out$linpred_occ)[[3]], paste0("draw_", 1:brms::ndraws(example_flocker_model_single)))
expect_equal(
dim(test_out$linpred_occ),
c(
example_flocker_model_single$data$ff_n_unit[1],
max(example_flocker_model_single$data$ff_n_rep),
brms::ndraws(example_flocker_model_single)))
# check new levels
newdat2 <- newdat
levels(newdat2$species) <- c(levels(newdat2$species), "Morphnus_guianensis")
newdat2$species[1] <- "Morphnus_guianensis"
expect_error(fitted_flocker(example_flocker_model_single, new_data = newdat2),
"Levels 'Morphnus_guianensis' of grouping factor 'species' cannot be found in the fitted model")
expect_equal(names(fitted_flocker(example_flocker_model_single, new_data = newdat2, allow_new_levels = T)),
c("linpred_occ", "linpred_det"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.