skip_on_cran()
if (!requireNamespace("cmdstanr", quietly = TRUE)) {
backend <- "rstan"
## if using rstan backend, models can crash on Windows
## so skip if on windows and cannot use cmdstanr
skip_on_os("windows")
} else {
if (isFALSE(is.null(cmdstanr::cmdstan_version(error_on_NA = FALSE)))) {
backend <- "cmdstanr"
}
}
# Packages
library(testthat)
library(data.table)
library(multilevelcoda)
library(extraoperators)
library(brms)
library(lme4)
# model
#---------------------------------------------------------------------------------------------------
data(mcompd)
data(sbp)
data(psub)
cilr <- complr(data = mcompd[ID %in% 1:200, .SD[1:5], by = ID], sbp = sbp,
parts = c("TST", "WAKE", "MVPA", "LPA", "SB"), idvar = "ID", total = 1440)
suppressWarnings(
m <- brmcoda(complr = cilr,
formula = Stress ~ bilr1 + bilr2 + bilr3 + bilr4 +
wilr1 + wilr2 + wilr3 + wilr4 + Female + (1 | ID),
chain = 1, iter = 500, seed = 123,
backend = backend))
foreach::registerDoSEQ()
x <- substitution(object = m, delta = 2)
# Tests
#---------------------------------------------------------------------------------------------------
test_that("substitution errors for invalid input", {
## missing object
expect_error(x <- substitution(basesub = psub, delta = 2))
## not brmcoda model
m1 <- lmer(Stress ~ 1 + (1 | ID), data = mcompd)
expect_error(x <- substitution(object = m1, basesub = psub, delta = 2))
## incorrect delta
expect_error(x <- substitution(object = m, basesub = psub, delta = -10))
## missing delta
expect_error(x <- substitution(object = m, basesub = psub))
# ## reference grid has matching names with ILRs
# rg <- data.table(bilr1 = 1)
# expect_error(x <- substitution(object = m, basesub = psub, delta = 2, regrid = rg))
## basesub does not have the same components as parts in cilr
ps <- basesub(c("WAKE", "MVPA", "LPA", "SB"))
expect_error(x <- substitution(object = m, basesub = ps, delta = 2))
## basesub does not have the same names as parts in cilr
ps <- basesub(parts = c("Sleep", "WAKE", "MVPA", "LIPA", "SB"))
expect_error(x <- substitution(object = m, basesub = ps, delta = 2))
})
test_that("substitution gives expected outputs", {
## bsub
expect_type(x$between_simple_sub, "list")
expect_equal(length(x$between_simple_sub), length(m$complr$parts))
expect_s3_class(x$between_simple_sub$TST, "data.table")
expect_s3_class(x$between_simple_sub$WAKE, "data.table")
expect_s3_class(x$between_simple_sub$MVPA, "data.table")
expect_s3_class(x$between_simple_sub$LPA, "data.table")
expect_s3_class(x$between_simple_sub$SB, "data.table")
expect_type(x$between_simple_sub$TST$Mean, "double")
expect_type(x$between_simple_sub$TST$CI_low, "double")
expect_type(x$between_simple_sub$TST$CI_high, "double")
expect_type(x$between_simple_sub$TST$Delta, "double")
expect_type(x$between_simple_sub$TST$From, "character")
expect_type(x$between_simple_sub$TST$To, "character")
expect_type(x$between_simple_sub$WAKE$Mean, "double")
expect_type(x$between_simple_sub$WAKE$CI_low, "double")
expect_type(x$between_simple_sub$WAKE$CI_high, "double")
expect_type(x$between_simple_sub$WAKE$Delta, "double")
expect_type(x$between_simple_sub$WAKE$From, "character")
expect_type(x$between_simple_sub$WAKE$To, "character")
expect_type(x$between_simple_sub$MVPA$Mean, "double")
expect_type(x$between_simple_sub$MVPA$CI_low, "double")
expect_type(x$between_simple_sub$MVPA$CI_high, "double")
expect_type(x$between_simple_sub$MVPA$Delta, "double")
expect_type(x$between_simple_sub$MVPA$From, "character")
expect_type(x$between_simple_sub$MVPA$To, "character")
expect_type(x$between_simple_sub$LPA$Mean, "double")
expect_type(x$between_simple_sub$LPA$CI_low, "double")
expect_type(x$between_simple_sub$LPA$CI_high, "double")
expect_type(x$between_simple_sub$LPA$Delta, "double")
expect_type(x$between_simple_sub$LPA$From, "character")
expect_type(x$between_simple_sub$LPA$To, "character")
expect_type(x$between_simple_sub$SB$Mean, "double")
expect_type(x$between_simple_sub$SB$CI_low, "double")
expect_type(x$between_simple_sub$SB$CI_high, "double")
expect_type(x$between_simple_sub$SB$Delta, "double")
expect_type(x$between_simple_sub$SB$From, "character")
expect_type(x$between_simple_sub$SB$To, "character")
expect_true(ncol(x$between_simple_sub$TST) >= 8)
expect_true(ncol(x$between_simple_sub$WAKE) >= 8)
expect_true(ncol(x$between_simple_sub$MVPA) >= 8)
expect_true(ncol(x$between_simple_sub$LPA) >= 8)
expect_true(ncol(x$between_simple_sub$SB) >= 8)
expect_true(all(x$between_simple_sub$TST$To == "TST"))
expect_true(all(x$between_simple_sub$WAKE$To == "WAKE"))
expect_true(all(x$between_simple_sub$MVPA$To == "MVPA"))
expect_true(all(x$between_simple_sub$LPA$To == "LPA"))
expect_true(all(x$between_simple_sub$SB$To == "SB"))
expect_true(all(x$between_simple_sub$TST$Level == "between"))
expect_true(all(x$between_simple_sub$WAKE$Level == "between"))
expect_true(all(x$between_simple_sub$MVPA$Level == "between"))
expect_true(all(x$between_simple_sub$LPA$Level == "between"))
expect_true(all(x$between_simple_sub$SB$Level == "between"))
## wsub
expect_type(x$within_simple_sub, "list")
expect_equal(length(x$within_simple_sub), length(m$complr$parts))
expect_s3_class(x$within_simple_sub$TST, "data.table")
expect_s3_class(x$within_simple_sub$WAKE, "data.table")
expect_s3_class(x$within_simple_sub$MVPA, "data.table")
expect_s3_class(x$within_simple_sub$LPA, "data.table")
expect_s3_class(x$within_simple_sub$SB, "data.table")
expect_type(x$within_simple_sub$TST$Mean, "double")
expect_type(x$within_simple_sub$TST$CI_low, "double")
expect_type(x$within_simple_sub$TST$CI_high, "double")
expect_type(x$within_simple_sub$TST$Delta, "double")
expect_type(x$within_simple_sub$TST$From, "character")
expect_type(x$within_simple_sub$TST$To, "character")
expect_type(x$within_simple_sub$WAKE$Mean, "double")
expect_type(x$within_simple_sub$WAKE$CI_low, "double")
expect_type(x$within_simple_sub$WAKE$CI_high, "double")
expect_type(x$within_simple_sub$WAKE$Delta, "double")
expect_type(x$within_simple_sub$WAKE$From, "character")
expect_type(x$within_simple_sub$WAKE$To, "character")
expect_type(x$within_simple_sub$MVPA$Mean, "double")
expect_type(x$within_simple_sub$MVPA$CI_low, "double")
expect_type(x$within_simple_sub$MVPA$CI_high, "double")
expect_type(x$within_simple_sub$MVPA$Delta, "double")
expect_type(x$within_simple_sub$MVPA$From, "character")
expect_type(x$within_simple_sub$MVPA$To, "character")
expect_type(x$within_simple_sub$LPA$Mean, "double")
expect_type(x$within_simple_sub$LPA$CI_low, "double")
expect_type(x$within_simple_sub$LPA$CI_high, "double")
expect_type(x$within_simple_sub$LPA$Delta, "double")
expect_type(x$within_simple_sub$LPA$From, "character")
expect_type(x$within_simple_sub$LPA$To, "character")
expect_type(x$within_simple_sub$SB$Mean, "double")
expect_type(x$within_simple_sub$SB$CI_low, "double")
expect_type(x$within_simple_sub$SB$CI_high, "double")
expect_type(x$within_simple_sub$SB$Delta, "double")
expect_type(x$within_simple_sub$SB$From, "character")
expect_type(x$within_simple_sub$SB$To, "character")
expect_true(ncol(x$within_simple_sub$TST) >= 8)
expect_true(ncol(x$within_simple_sub$WAKE) >= 8)
expect_true(ncol(x$within_simple_sub$MVPA) >= 8)
expect_true(ncol(x$within_simple_sub$LPA) >= 8)
expect_true(ncol(x$within_simple_sub$SB) >= 8)
expect_true(all(x$within_simple_sub$TST$To == "TST"))
expect_true(all(x$within_simple_sub$WAKE$To == "WAKE"))
expect_true(all(x$within_simple_sub$MVPA$To == "MVPA"))
expect_true(all(x$within_simple_sub$LPA$To == "LPA"))
expect_true(all(x$within_simple_sub$SB$To == "SB"))
expect_true(all(x$within_simple_sub$TST$Level == "within"))
expect_true(all(x$within_simple_sub$WAKE$Level == "within"))
expect_true(all(x$within_simple_sub$MVPA$Level == "within"))
expect_true(all(x$within_simple_sub$LPA$Level == "within"))
expect_true(all(x$within_simple_sub$SB$Level == "within"))
## bsubmargins
expect_type(x$between_avg_sub, "list")
expect_equal(length(x$between_avg_sub), length(m$complr$parts))
expect_s3_class(x$between_avg_sub$TST, "data.table")
expect_s3_class(x$between_avg_sub$WAKE, "data.table")
expect_s3_class(x$between_avg_sub$MVPA, "data.table")
expect_s3_class(x$between_avg_sub$LPA, "data.table")
expect_s3_class(x$between_avg_sub$SB, "data.table")
expect_type(x$between_avg_sub$TST$Mean, "double")
expect_type(x$between_avg_sub$TST$CI_low, "double")
expect_type(x$between_avg_sub$TST$CI_high, "double")
expect_type(x$between_avg_sub$TST$Delta, "double")
expect_type(x$between_avg_sub$TST$From, "character")
expect_type(x$between_avg_sub$TST$To, "character")
expect_type(x$between_avg_sub$WAKE$Mean, "double")
expect_type(x$between_avg_sub$WAKE$CI_low, "double")
expect_type(x$between_avg_sub$WAKE$CI_high, "double")
expect_type(x$between_avg_sub$WAKE$Delta, "double")
expect_type(x$between_avg_sub$WAKE$From, "character")
expect_type(x$between_avg_sub$WAKE$To, "character")
expect_type(x$between_avg_sub$MVPA$Mean, "double")
expect_type(x$between_avg_sub$MVPA$CI_low, "double")
expect_type(x$between_avg_sub$MVPA$CI_high, "double")
expect_type(x$between_avg_sub$MVPA$Delta, "double")
expect_type(x$between_avg_sub$MVPA$From, "character")
expect_type(x$between_avg_sub$MVPA$To, "character")
expect_type(x$between_avg_sub$LPA$Mean, "double")
expect_type(x$between_avg_sub$LPA$CI_low, "double")
expect_type(x$between_avg_sub$LPA$CI_high, "double")
expect_type(x$between_avg_sub$LPA$Delta, "double")
expect_type(x$between_avg_sub$LPA$From, "character")
expect_type(x$between_avg_sub$LPA$To, "character")
expect_type(x$between_avg_sub$SB$Mean, "double")
expect_type(x$between_avg_sub$SB$CI_low, "double")
expect_type(x$between_avg_sub$SB$CI_high, "double")
expect_type(x$between_avg_sub$SB$Delta, "double")
expect_type(x$between_avg_sub$SB$From, "character")
expect_type(x$between_avg_sub$SB$To, "character")
expect_true(ncol(x$between_avg_sub$TST) == 8)
expect_true(ncol(x$between_avg_sub$WAKE) == 8)
expect_true(ncol(x$between_avg_sub$MVPA) == 8)
expect_true(ncol(x$between_avg_sub$LPA) == 8)
expect_true(ncol(x$between_avg_sub$SB) == 8)
expect_true(all(x$between_avg_sub$TST$To == "TST"))
expect_true(all(x$between_avg_sub$WAKE$To == "WAKE"))
expect_true(all(x$between_avg_sub$MVPA$To == "MVPA"))
expect_true(all(x$between_avg_sub$LPA$To == "LPA"))
expect_true(all(x$between_avg_sub$SB$To == "SB"))
expect_true(all(x$between_avg_sub$TST$Level == "between"))
expect_true(all(x$between_avg_sub$WAKE$Level == "between"))
expect_true(all(x$between_avg_sub$MVPA$Level == "between"))
expect_true(all(x$between_avg_sub$LPA$Level == "between"))
expect_true(all(x$between_avg_sub$SB$Level == "between"))
## wsubmargins
expect_type(x$within_avg_sub, "list")
expect_equal(length(x$within_avg_sub), length(m$complr$parts))
expect_s3_class(x$within_avg_sub$TST, "data.table")
expect_s3_class(x$within_avg_sub$WAKE, "data.table")
expect_s3_class(x$within_avg_sub$MVPA, "data.table")
expect_s3_class(x$within_avg_sub$LPA, "data.table")
expect_s3_class(x$within_avg_sub$SB, "data.table")
expect_type(x$within_avg_sub$TST$Mean, "double")
expect_type(x$within_avg_sub$TST$CI_low, "double")
expect_type(x$within_avg_sub$TST$CI_high, "double")
expect_type(x$within_avg_sub$TST$Delta, "double")
expect_type(x$within_avg_sub$TST$From, "character")
expect_type(x$within_avg_sub$TST$To, "character")
expect_type(x$within_avg_sub$WAKE$Mean, "double")
expect_type(x$within_avg_sub$WAKE$CI_low, "double")
expect_type(x$within_avg_sub$WAKE$CI_high, "double")
expect_type(x$within_avg_sub$WAKE$Delta, "double")
expect_type(x$within_avg_sub$WAKE$From, "character")
expect_type(x$within_avg_sub$WAKE$To, "character")
expect_type(x$within_avg_sub$MVPA$Mean, "double")
expect_type(x$within_avg_sub$MVPA$CI_low, "double")
expect_type(x$within_avg_sub$MVPA$CI_high, "double")
expect_type(x$within_avg_sub$MVPA$Delta, "double")
expect_type(x$within_avg_sub$MVPA$From, "character")
expect_type(x$within_avg_sub$MVPA$To, "character")
expect_type(x$within_avg_sub$LPA$Mean, "double")
expect_type(x$within_avg_sub$LPA$CI_low, "double")
expect_type(x$within_avg_sub$LPA$CI_high, "double")
expect_type(x$within_avg_sub$LPA$Delta, "double")
expect_type(x$within_avg_sub$LPA$From, "character")
expect_type(x$within_avg_sub$LPA$To, "character")
expect_type(x$within_avg_sub$SB$Mean, "double")
expect_type(x$within_avg_sub$SB$CI_low, "double")
expect_type(x$within_avg_sub$SB$CI_high, "double")
expect_type(x$within_avg_sub$SB$Delta, "double")
expect_type(x$within_avg_sub$SB$From, "character")
expect_type(x$within_avg_sub$SB$To, "character")
expect_true(ncol(x$within_avg_sub$TST) == 8)
expect_true(ncol(x$within_avg_sub$WAKE) == 8)
expect_true(ncol(x$within_avg_sub$MVPA) == 8)
expect_true(ncol(x$within_avg_sub$LPA) == 8)
expect_true(ncol(x$within_avg_sub$SB) == 8)
expect_true(all(x$within_avg_sub$TST$To == "TST"))
expect_true(all(x$within_avg_sub$WAKE$To == "WAKE"))
expect_true(all(x$within_avg_sub$MVPA$To == "MVPA"))
expect_true(all(x$within_avg_sub$LPA$To == "LPA"))
expect_true(all(x$within_avg_sub$SB$To == "SB"))
expect_true(all(x$within_avg_sub$TST$Level == "within"))
expect_true(all(x$within_avg_sub$WAKE$Level == "within"))
expect_true(all(x$within_avg_sub$MVPA$Level == "within"))
expect_true(all(x$within_avg_sub$LPA$Level == "within"))
expect_true(all(x$within_avg_sub$SB$Level == "within"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.