context("Unit tests of the default.penalty function")
# Random number of sample, random number of classes
p <- 10
n <- replicate(sample(2:5, 1), sample(3:9, 1))
S <- createS(n = n, p = p)
G <- length(S)
test_that("default.penalty accept different input types", {
# Handling one-way designs
expect_that(default.penalty(0), is_a("matrix")) # Degenerate case
expect_that(default.penalty(1), is_a("matrix")) # Degenerate case
expect_that(default.penalty(2), is_a("matrix"))
expect_that(default.penalty(4), is_a("matrix"))
expect_that(default.penalty(sample(1:1000, 1)), is_a("matrix"))
# Use the length of the list
expect_that(default.penalty(S), is_a("matrix"))
expect_that(default.penalty(G = S), is_a("matrix"))
# Use a data.frame
df0 <- expand.grid(Factor = c("lvl1", "lvl2"))
expect_that(default.penalty(df0), is_a("matrix"))
expect_that(default.penalty(df = df0), is_a("matrix"))
# Some more elaborate examples
Slist <- vector("list", 6)
df1 <- expand.grid(DS = c("DS1", "DS2", "DS3"), ER = c("ER+", "ER-"))
# Usage (various interface demonstrations)
expect_that(default.penalty(6, df1, type = "Complete"), is_a("matrix"))
expect_that(default.penalty(6, type = "CartesianEqual"), gives_warning("df"))
expect_that(default.penalty(6, df1, type = "CartesianEqual"), is_a("matrix"))
expect_that(default.penalty(Slist, df1, type = "CartesianEqual"), is_a("matrix"))
expect_that(default.penalty(6, df1, type = "CartesianUnequal"), is_a("matrix"))
expect_that(default.penalty(df1), is_a("matrix"))
# A 2 by 2 by 2 design
df2 <- expand.grid(A = c("A1", "A2"), B = c("B1", "B2"), C = c("C1", "C3"))
expect_that(default.penalty(df2), is_a("matrix"))
expect_that(default.penalty(df2, type = "CartesianEqual"), is_a("matrix"))
expect_that(default.penalty(df2, type = "CartesianUnequal"), is_a("matrix"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.