library(testthat)
library(MANOVA.RM)
context("RM output")
test_that("Means correctly calculated",{
if(requireNamespace("data.table")){
library(data.table)
data("o2cons")
ox <- as.data.table(o2cons)
m <- ox[, mean(O2), by = .(Group, Time, Staphylococci)]
t1 <- RM(O2 ~ Group * Time * Staphylococci, data = o2cons, subject = "Subject",
iter = 1, within = c("Time", "Staphylococci"))
t2 <- RM(O2 ~ Group * Staphylococci * Time , data = o2cons, subject = "Subject",
iter = 1, within = c("Time", "Staphylococci"))
expect_equal(round(m[Group == "P" & Time == 6 & Staphylococci == 0, V1], 3),
t1$Descriptive[1, "Means"], t2$Descriptive[1, "Means"])
expect_equal(round(m[Group == "P" & Time == 18 & Staphylococci == 0, V1], 3),
t1$Descriptive[5, "Means"], t2$Descriptive[3, "Means"])
}
})
test_that("example 1: 1 whole, 2 sub",{
oxy <- RM(O2 ~ Group * Staphylococci * Time, data = o2cons,
subject = "Subject", no.subf = 2, iter = 100, CPU = 1)
expect_equal(oxy$WTS[1], 11.167)
})
test_that("example 2: 2 whole, 2 sub", {
EEG_model <- RM(resp ~ sex * diagnosis * feature * region,
data = EEG, subject = "id", no.subf = 2, resampling = "WildBS",
iter = 100, CPU = 1)
expect_equal(EEG_model$WTS[1], 9.973)
})
test_that("example 3: only subplot factors",{
data("o2cons")
oxy <- o2cons[o2cons$Group == "P", ]
submodel <-RM(O2~ Staphylococci * Time, data = oxy,
within = c("Staphylococci", "Time"),
iter = 2, CPU = 1, subject = "Subject")
expect_equal(submodel$WTS[1], 2.69)
})
test_that("correct mean calculation",{
if(requireNamespace("GFD")){
library(GFD)
data("o2cons")
oxy <- o2cons[o2cons$Group == "P" & o2cons$Staphylococci == 1, ]
mod1 <- RM(O2 ~ Time, data = oxy, subject = "Subject", no.subf = 1,
iter = 10, CPU = 1)
mod2 <- GFD(O2 ~ Time, data = oxy, nperm = 10)
# WTS and ATS differ, since GFD ignores dependency structure
expect_equal(c(mod1$Descriptive["Means"]), c(round(mod2$Descriptive["Means"], 3)))
}
})
test_that("wrong interaction",{
data(EEG)
expect_error(RM(resp ~ sex + feature * region, data = EEG,
subject = "id", iter = 10, CPU = 1, no.subf = 2))
})
test_that("missing values", {
data(EEG)
EEG2 <- EEG[-5, ]
expect_error(RM(resp ~ sex * feature * region, data = EEG2, no.subf = 2,
subject = "id", iter = 1, CPU = 1))
})
test_that("error if within not last in formula", {
data(EEG)
expect_error(RM(O2 ~ Staphylococci * Time * Group, data = o2cons, subject = "Subject",
iter = 1, within = c("Time", "Staphylococci")))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.