Nothing
context("test all tidy methods return tibbles")
verbose <- FALSE
pkgs_avail <- vapply(c("testthat", "broom.mixed", "stringr", "lme4", "glmmTMB"), require,
quietly = TRUE,
character.only = TRUE,
FUN.VALUE = logical(1))
## FIXME: _could_ copy data objects over if we wanted to check more robustly (without requiring lme4, glmmTMB)
## harmless if rstan not available; if it is available, should (?)
## resolve issues with brms use of rstan methods ...
## see thread at https://stat.ethz.ch/pipermail/r-package-devel/2024q3/011097.html
## for gory details
require("rstan")
if (all(pkgs_avail)) {
## objects to SKIP (from RDA files)
skip_objects <- list(nlme_example.rda = c("lmm2"),
## glance method not working for this case
brms_example.rda = c("brms_multi","brms_multi_RE")
)
skip_files <- c("efc.rds")
## need data available for augment() methods ...
data("sleepstudy", package = "lme4")
data("Salamanders", package = "glmmTMB")
efc <- readRDS(system.file("extdata", "efc.rds", package="broom.mixed"))
ex <- list.files(system.file("extdata", package = "broom.mixed"),
pattern = "\\.rd"
)
ex <- setdiff(ex,skip_files)
## test tidy, augment, glance methods from lme4-tidiers.R
for (e in ex) {
p <- stringr::str_extract(e, "^[^_]+")
## cat(": ",p,"\n")
if (require(p, quietly = TRUE, character.only=TRUE)) {
f <- system.file("extdata", e, package = "broom.mixed")
fn <- stringr::str_extract(f, "[^/]+$")
if (verbose) cat(fn, "\n")
if (grepl("\\.rds", e)) {
x <- list()
x[[1]] <- readRDS(f)
} else {
## rda file
L <- load(f)
x <- mget(setdiff(L, skip_objects[[fn]]))
if (p == "glmmTMB") {
x <- lapply(x, glmmTMB::up2date)
}
}
for (z in x) {
testf <- function(fn_str, obj) {
cc <- class(obj)[1]
if (sum(grepl(cc, methods(fn_str))) > 0) {
if (verbose) cat(sprintf("found method %s for %s\n", fn_str, cc))
return(expect_is(get(fn_str)(obj), "tbl_df"))
} else {
return(TRUE)
}
}
testf("glance", z)
testf("augment", z)
testf("tidy", z)
} ## loop over objects
} ## if package available
}
} ## if all pkgs available
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.