Nothing
# .parseDotVars ----
test_that("dotVars are parsed correctly.", {
skip_on_cran()
extVar1 <- 23
extVar2 <- 42
res <- list(..extVar1 = 23, ..extVar2 = 42)
expect_equal(.parseDotVars("a + ..extVar1 | b + ..extVar2"), res)
expect_equal(.parseDotVars(c("a + ..extVar1", "b + ..extVar2")), res)
expect_equal(length(.parseDotVars("a + b")), 0)
expect_error(.parseDotVars("..extVar12"))
})
test_that("variables from different environments are parsed correctly.", {
skip_on_cran()
extVar3 <- 7
env1 <- new.env()
env2 <- new.env(parent = env1)
env1$extVar1 <- 23
env2$extVar2 <- 42
res <- list(..extVar1 = 23, ..extVar2 = 42, ..extVar3 = 7)
with(env2, {
expect_equal(.parseDotVars("a + ..extVar1 | b + ..extVar2 * ..extVar3"), res)
expect_equal(.parseDotVars(c("a + ..extVar1 * ..extVar2", "b + ..extVar3")), res)
})
})
# .evalWith ----
test_that("evalWith throws errors.", {
skip_on_cran()
df <- data.frame()
ext <- list(formula2parse = 2)
expect_error(.evalWith("", ext), "reserved variable")
expect_error(.evalWith("", list(), df, 10), "different length")
})
test_that("evalWith output length is correct.", {
skip_on_cran()
df <- data.frame(a = rep.int(5, 5))
ext <- list(..ev = 2)
expect_equal(length(.evalWith("a + ..ev", ext, df, 5)), 5)
expect_equal(length(.evalWith("a + ..ev", ext, dtSim = df)), 5)
})
test_that("evalWith output is Matrix.", {
skip_on_cran()
df <- data.frame(a = rep.int(5, 5))
ext <- list(..ev = 2)
expect_is(.evalWith("a + ..ev", ext, df, 5), "matrix")
expect_is(.evalWith("a + ..ev", ext, df), "matrix")
expect_is(.evalWith(c("a + ..ev", "..ev * 2"), ext, df), "matrix")
expect_is(.evalWith("..ev * 2", ext), "matrix")
})
# .adjustProbs ----
test_that("probabilities (matrix) are adjusted as documented.", {
skip_on_cran()
forall(gen.and_then(gen.c(gen.element(2:6), of = 2), function(n) {
gen.with(gen.list(gen_n_norm_Probs(n[2]), of = n[1]), function(ps) {
do.call("rbind", ps)
})
}), function(p) {
over <- p / .9
under <- p / 1.1
expect_warning(.adjustProbs(over), class = "simstudy::valueWarning")
expect_warning(.adjustProbs(under), class = "simstudy::valueWarning")
expect_error(.adjustProbs(under * -1), class = "simstudy::valueError")
expect_equal(mean(rowSums(.adjustProbs(under))), 1)
expect_equal(mean(rowSums(.adjustProbs(over))), 1)
expect_equal(dim(.adjustProbs(over)), dim(over))
expect_equal(dim(.adjustProbs(under)), dim(under) + c(0, 1))
})
})
# .getDists ----
test_that("number of Dists is up to date.", {
skip_on_cran()
expect_length(.getDists(), 16)
})
# .isFormulaScalar ----
test_that("isFormularScalar works correctly.", {
skip_on_cran()
expect_true(.isFormulaScalar("5 + 3"))
expect_true(.isFormulaScalar(5 + 3))
expect_false(.isFormulaScalar("a + 3"))
expect_false(.isFormulaScalar("a;3"))
expect_false(.isFormulaScalar(data.frame(a = "asd")))
})
# .isValidVarName ----
test_that("var names are validated correctly.", {
skip_on_cran()
validNames <- c("var1", "name", "name2", "var1")
wrongNames <- c("...", "..1", "..5")
expect_true(all(.isValidVarName(validNames)))
expect_true(all(.isValidVarName(validNames[1:3], unique = TRUE)))
expect_true(all(.isValidVarName(wrongNames, allowReserved = TRUE, unique = TRUE)))
expect_false(all(.isValidVarName(wrongNames)))
expect_false(all(.isValidVarName(c(validNames, wrongNames))))
expect_false(all(.isValidVarName(validNames, unique = TRUE)))
})
# .isError ----
test_that("errors are detected correctly.", {
skip_on_cran()
err <- try(nonVar + 4, silent = TRUE)
noErr <- try(3 + 5, silent = TRUE)
expect_true(.isError(err))
expect_false(.isError(noErr))
expect_false(.isError(5))
expect_false(.isError("ab"))
})
# .hasValue ----
test_that("hasValue works.", {
skip_on_cran()
expect_true(.hasValue("value"))
expect_true((function(x) .hasValue(x))(5))
expect_true((function(x) .hasValue(x))(NA))
expect_false(.hasValue())
expect_false((function(x) .hasValue(x))())
expect_false((function(x) .hasValue(x))(NULL))
expect_false(.hasValue(NULL))
})
# .log2Prob ----
test_that("log odds are converted correctly.", {
skip_on_cran()
prob <- 0.2
logOdds <- log(0.25)
expect_equal(.log2Prob(logOdds), prob)
expect_equal(.log2Prob(rep(logOdds, 5)), rep(prob, 5))
})
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.