Nothing
mod <- "
# intercept and slope with fixed coefficients
i =~ 1*t1 + 1*t2 + 1*t3 + 1*t4
s =~ 0*t1 + 1*t2 + 2*t3 + 3*t4
# regressions
i ~ x1 + x2
s ~ x1 + x2
# time-varying covariates
t1 ~ c1
t2 ~ c2
t3 ~ c3
t4 ~ c4
"
dat <- lavaan::Demo.growth
fit_lav <- lavaan::cfa(mod, dat)
NSAMP <- 3
test_that("Method: marggaus (fast)", {
expect_no_error({
fit <- agrowth(
mod,
dat,
marginal_method = "marggaus",
vb_correction = FALSE,
test = "none",
verbose = FALSE,
nsamp = NSAMP
)
})
expect_no_error(out <- capture.output(summary(fit)))
expect_s4_class(fit, "INLAvaan")
})
test_that("Method: skewnorm", {
expect_no_error({
fit <- agrowth(
mod,
dat,
marginal_method = "skewnorm",
vb_correction = FALSE,
test = "none",
verbose = FALSE,
nsamp = NSAMP
)
})
expect_no_error(out <- capture.output(summary(fit)))
expect_s4_class(fit, "INLAvaan")
# Convergence (dx ~ 0) depends on the optimiser path, which varies with the
# platform's BLAS/compiler -- too fragile to assert on CRAN's check farm.
skip_on_cran()
expect_equal(fit@optim$dx, rep(0, length(coef(fit))), tolerance = 1e-3)
})
test_that("Method: asymgaus", {
expect_no_error({
fit <- agrowth(
mod,
dat,
marginal_method = "asymgaus",
vb_correction = FALSE,
test = "none",
verbose = FALSE,
nsamp = NSAMP
)
})
expect_no_error(out <- capture.output(summary(fit)))
expect_s4_class(fit, "INLAvaan")
})
test_that("Method: sampling", {
expect_no_error({
fit <- agrowth(
mod,
dat,
marginal_method = "sampling",
vb_correction = FALSE,
test = "none",
verbose = FALSE,
nsamp = NSAMP
)
})
expect_no_error(out <- capture.output(summary(fit)))
expect_s4_class(fit, "INLAvaan")
})
test_that("Gradients are correct (Finite Difference Check)", {
# Analytic-vs-finite-difference agreement is sensitive to BLAS/compiler
# differences across CRAN check flavours -- too fragile to assert there.
skip_on_cran()
suppressMessages(
tmp <- capture.output(fit <- agrowth(mod, dat, test = "none", debug = TRUE))
)
test_df <- read.table(text = tmp, skip = 1)[, -1]
colnames(test_df) <- c("fd", "analytic", "diff")
expect_equal(
as.numeric(test_df$fd),
as.numeric(test_df$diff),
tolerance = 1e-3
)
expect_equal(
as.numeric(test_df$diff),
rep(0, nrow(test_df)),
tolerance = 1e-3
)
})
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.