# h_extract_covariance_terms ----
test_that("h_extract_covariance_terms returns a list of possible covariance terms", {
expect_identical(
h_extract_covariance_terms(a ~ b + us(a | g / s) + other(b, c)),
list(us = quote(us(a | g / s)))
)
expect_identical(
h_extract_covariance_terms(a ~ b + us(a | g / s) + csh(a2 | g2 / s2)),
list(
us = quote(us(a | g / s)),
csh = quote(csh(a2 | g2 / s2))
)
)
expect_identical(
h_extract_covariance_terms(~ b + us(a | g / s) + csh(a2 | g2 / s2)),
list(
us = quote(us(a | g / s)),
csh = quote(csh(a2 | g2 / s2))
)
)
expect_identical(
h_extract_covariance_terms(a ~ a + us(a | g / s)),
list(us = quote(us(a | g / s)))
)
expect_identical(
h_extract_covariance_terms(a ~ c:d + us(a | g / s)),
list(us = quote(us(a | g / s)))
)
expect_identical(
h_extract_covariance_terms(a ~ c:d + us(a | g / s) + csh(a2 | g2 / s2)),
list(
us = quote(us(a | g / s)),
csh = quote(csh(a2 | g2 / s2))
)
)
})
# h_drop_covariance_terms ----
test_that("h_drop_covariance_terms identifies covariance terms specifically", {
expect_identical(
h_drop_covariance_terms(a ~ b + us(a | g / s)),
a ~ b
)
expect_identical(
h_drop_covariance_terms(~ b + us(a | g / s)),
~b
)
expect_identical(
h_drop_covariance_terms(a ~ b + csh(a | g / s) + c),
a ~ b + c
)
expect_identical(
h_drop_covariance_terms(a ~ b + other(a | g / s) + c),
a ~ b + other(a | g / s) + c
)
})
# h_add_covariance_terms ----
test_that("h_add_covariance_terms adds covariance variables as terms", {
cs <- cov_struct("us", "AVISITN", "USUBJID")
f <- a ~ b + c
expect_identical(
h_add_covariance_terms(f, cs),
a ~ b + c + USUBJID + AVISITN
)
cs <- cov_struct("sp_exp", c("COORDA", "COORDB"), "USUBJID", "GRP")
f <- a ~ b + c
expect_identical(
h_add_covariance_terms(f, cs),
a ~ b + c + USUBJID + COORDA + COORDB + GRP
)
})
# h_add_terms ----
test_that("h_drop_terms works", {
formula <- x ~ y + z
expect_identical(
h_add_terms(formula, "a"),
x ~ y + z + a
)
expect_identical(
h_add_terms(formula, c("y", "z")),
x ~ y + z
)
expect_identical(
h_add_terms(formula, "y*z"),
x ~ y + z + y:z
)
})
test_that("h_add_terms works on adds is length 0", {
formula <- x ~ y + z
expect_identical(
h_add_terms(formula, NULL),
formula
)
expect_identical(
h_add_terms(formula, character(0)),
formula
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.