tests/testthat/test-lavaan_rerun_warnings.R

library(testthat)
library(lavaan)
library(semfindr)

#context("Test handling of reruns with warnings")

mod_p <-
'
f1 =~  .7*x1 + .6*x2 + .8*x3 + .3*x5
f2 =~  .2*x1 + .6*x4 + .8*x5 + .7*x6
f1 ~~ .2*f2
'
mod <-
'
f1 =~ x1 + x2 + x3
f2 =~ x4 + x5 + x6
'

dat <- cfa_dat[1:45, ]
fit <- lavaan::cfa(mod, dat)
#summary(fit, fit.measures = TRUE)
fit_rerun <- lavaan_rerun(fit)
fit_post_check <- sapply(fit_rerun$rerun, function(x) {
                    chk <- tryCatch(lavaan::lavTech(x, what = "post.check"),
                                    warning = function(w) w)
                    })
i_valid <- sapply(fit_post_check, isTRUE)
fit_est_change1 <- est_change(fit_rerun)
fit_est_change_raw1 <- est_change_raw(fit_rerun)
fit_est_change2 <- est_change(fit_rerun, c("f1 =~ x2", "f2 =~ x5"))
fit_est_change_raw2 <- est_change_raw(fit_rerun, c("f1 =~ x2", "f2 =~ x5"))
fit_est_change3 <- est_change(fit_rerun, c("f2 =~ x5"))
fit_est_change_raw3 <- est_change_raw(fit_rerun, c("f2 =~ x5"))
fit_fm_change1 <- fit_measures_change(fit_rerun, c("chisq", "cfi"))
fit_fm_change2 <- fit_measures_change(fit_rerun, c("tli"))

test_that("Check if lavTech post.check results are stored.", {
    expect_equal(ignore_attr = TRUE,
        fit_rerun$post_check, fit_post_check
      )
  })

test_that("Check fit_est_change1.", {
    expect_equal(ignore_attr = TRUE,
        complete.cases(fit_est_change1), i_valid
      )
  })

test_that("Check fit_est_change_raw1.", {
    expect_equal(ignore_attr = TRUE,
        complete.cases(fit_est_change_raw1), i_valid
      )
  })


test_that("Check fit_est_change2.", {
    expect_equal(ignore_attr = TRUE,
        complete.cases(fit_est_change2), i_valid
      )
  })

test_that("Check fit_est_change_raw2.", {
    expect_equal(ignore_attr = TRUE,
        complete.cases(fit_est_change_raw2), i_valid
      )
  })

test_that("Check fit_est_change3.", {
    expect_equal(ignore_attr = TRUE,
        complete.cases(fit_est_change3), i_valid
      )
  })

test_that("Check fit_est_change_raw3.", {
    expect_equal(ignore_attr = TRUE,
        complete.cases(fit_est_change_raw3), i_valid
      )
  })

test_that("Check fit_fm_change1.", {
    expect_equal(ignore_attr = TRUE,
        complete.cases(fit_fm_change1), i_valid
      )
  })

test_that("Check fit_fm_change2.", {
    expect_equal(ignore_attr = TRUE,
        complete.cases(fit_fm_change2), i_valid
      )
  })

Try the semfindr package in your browser

Any scripts or data that you put into this service are public.

semfindr documentation built on April 3, 2025, 5:58 p.m.