## ---- test-metaDyn-distal-random-effects-null lapply( X = 1, FUN = function(i, text, alpha, tau_sqr, v_hat, kappa, phi, psi) { message(text) set.seed(42) if (!identical(Sys.getenv("NOT_CRAN"), "true") && !interactive()) { message("CRAN: tests skipped.") # nolint start return(invisible(NULL)) # nolint end } if (identical(Sys.getenv("GITHUB_TEST"), "true")) { ci <- TRUE n <- 5000 robust <- TRUE tol <- 0.50 } else { ci <- FALSE n <- 500 robust <- FALSE tol <- 0.50 } testthat::test_that( text, { testthat::skip_on_cran() v <- lapply( X = seq_len(n), FUN = function(i) { cov( MASS::mvrnorm( n = 100, mu = c(0, 0), Sigma = v_hat ) ) } ) y <- lapply( X = seq_len(n), FUN = function(i) { epsilon <- MASS::mvrnorm( n = 1, mu = c(0, 0), Sigma = v[[i]] ) upsilon <- MASS::mvrnorm( n = 1, mu = c(0, 0), Sigma = tau_sqr ) c( alpha + upsilon + epsilon ) } ) z <- lapply( X = seq_len(n), FUN = function(i) { delta <- MASS::mvrnorm( n = 1, mu = c(0, 0, 0, 0), Sigma = psi ) c( kappa + phi %*% y[[i]] + delta ) } ) fit <- Meta( y = y, v = v, z = z, random = TRUE, seed = 42 ) if (ci) { print(fit) vcov(fit) summary(fit) print(summary(fit)) confint(fit) extract(fit) vcov(fit, robust = TRUE) confint(fit, robust = TRUE) summary(fit, robust = TRUE) } coefs <- coef(fit) testthat::expect_true( all( abs( round( x = coefs[grep("^alpha", names(coefs))], digits = 0 ) - alpha ) <= tol ) ) testthat::expect_true( all( abs( round( x = c(mxEval(alpha, fit$output)), digits = 0 ) - alpha ) <= tol ) ) testthat::expect_true( all( abs( round( x = mxEval(tau_sqr, fit$output), digits = 1 ) - tau_sqr ) <= tol ) ) testthat::expect_true( all( abs( round( x = mxEval(v_hat, fit$output), digits = 1 ) - v_hat ) <= tol ) ) testthat::expect_true( all( abs( round( x = coefs[grep("^kappa", names(coefs))], digits = 0 ) - kappa ) <= tol ) ) testthat::expect_true( all( abs( round( x = c(mxEval(kappa, fit$output)), digits = 0 ) - kappa ) <= tol ) ) testthat::expect_true( all( abs( round( x = coefs[grep("^phi", names(coefs))], digits = 0 ) - c(phi) ) <= tol ) ) testthat::expect_true( all( abs( round( x = mxEval(phi, fit$output), digits = 0 ) - phi ) <= tol ) ) testthat::expect_true( all( abs( round( x = mxEval(psi, fit$output), digits = 1 ) - psi ) <= tol ) ) } ) }, text = "test-metaDyn-distal-random-effects-null", alpha = rep(x = 0.50, times = 2), tau_sqr = 0.50 * diag(2), v_hat = 0.10 * diag(2), kappa = rep(x = 0.50, times = 4), phi = matrix( data = 0.50, nrow = 4, ncol = 2 ), psi = 0.50 * diag(4) )