Nothing
test_that("is_same_function compares function bodies correctly", {
f1 <- function(x) {
x + 1
}
f2 <- function(x) {
x + 1
}
f3 <- function(x) {
x + 2
}
# Identical bodies should return TRUE
expect_true(is_same_function(f1, f2))
# Different bodies should return FALSE
expect_false(is_same_function(f1, f3))
# Edge case: It checks body only, ignores argument names
# (Documenting this behavior is important)
g1 <- function(a) {
return(1)
}
g2 <- function(b) {
return(1)
}
expect_true(is_same_function(g1, g2))
})
test_that("as_fun_string flattens functions to single string", {
f <- function(x) {
x^2 + 1
}
res <- as_fun_string(f)
expect_type(res, "character")
expect_length(res, 1)
# Check that newlines/spaces were normalized
expect_match(res, "function \\(x\\)")
expect_match(res, "x\\^2 \\+ 1")
})
test_that("is_bad_cov identifies problematic matrices", {
# 1. Positive Definite (Good) -> Should return FALSE
mat_pd <- matrix(c(2, 0.5, 0.5, 2), 2, 2)
expect_false(is_bad_cov(mat_pd))
# 2. Negative Definite (Bad) -> Should return TRUE
mat_nd <- matrix(c(-2, 0.5, 0.5, -2), 2, 2)
expect_true(is_bad_cov(mat_nd))
# 3. NA/Inf/NaN (Bad) -> Should return TRUE
mat_na <- mat_pd
mat_na[1, 1] <- NA
expect_true(is_bad_cov(mat_na))
mat_inf <- mat_pd
mat_inf[1, 1] <- Inf
expect_true(is_bad_cov(mat_inf))
})
test_that("make_pd corrects non-PD matrices", {
# Case 1: Already PD -> Should remain unchanged
mat_pd <- matrix(c(2, 1, 1, 2), 2, 2)
expect_equal(make_pd(mat_pd), mat_pd)
# Case 2: Non-PD -> Should become PD
# Create a matrix with negative eigenvalues
mat_bad <- matrix(c(1, 2, 2, 1), 2, 2) # Eigenvalues: 3, -1
mat_fixed <- make_pd(mat_bad)
# Check that it is now PD (all eigenvalues > 0)
eigs <- eigen(mat_fixed)$values
expect_true(all(eigs + 1e-9 > 0))
# Check that it is still symmetric
expect_true(isSymmetric(mat_fixed))
})
test_that("is_lavaan / is_blavaan identify objects correctly", {
mod <- "visual =~ x1 + x2 + x3"
dat <- lavaan::HolzingerSwineford1939
lav_fit <- lavaan::cfa(mod, dat)
expect_true(is_lavaan(lav_fit))
expect_false(isTRUE(is_lavaan(list())))
expect_false(is_blavaan(lav_fit))
})
test_that("dmode handles edge cases", {
expect_true(is.na(dmode(numeric(0))))
expect_equal(dmode(42), 42)
# Constant vector: returns mean
expect_equal(dmode(rep(5, 10)), 5)
})
test_that("get_inlavaan_internal errors for non-INLAvaan", {
expect_error(get_inlavaan_internal(list()), "Object must be of class")
})
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.