testthat::context('ttestPS')
testthat::test_that('All options in the ttestPS work (sunny)', {
suppressWarnings(RNGversion("3.5.0"))
set.seed(1337)
time1 <- rnorm(100)
measure1 <- rnorm(100)
df <- data.frame(
`time 1` = time1,
`time 2` = time1 - rnorm(100, 0.5, 1),
`measure 1` = measure1,
`measure 2` = measure1 + rnorm(100, 10, 20),
check.names = FALSE
)
pairs <- list(
list(i1="time 1", i2="time 2"),
list(i1="measure 1", i2="measure 2")
)
r <- jmv::ttestPS(
df,
pairs = pairs,
bf = TRUE,
wilcoxon = TRUE,
norm = TRUE,
meanDiff = TRUE,
ci = TRUE,
effectSize = TRUE,
ciES = TRUE,
desc = TRUE
)
# Test main t-test table
ttestTable <- r$ttest$asDF
testthat::expect_equal(c('time 1', 'measure 1'), ttestTable[['var1[stud]']])
testthat::expect_equal(c('time 2', 'measure 2'), ttestTable[['var2[stud]']])
testthat::expect_equal(c(3.237, -5.02), ttestTable[['stat[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(99, 99), ttestTable[['df[stud]']])
testthat::expect_equal(c(0.002, 0), ttestTable[['p[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(0.341, -9.255), ttestTable[['md[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(0.105, 1.843), ttestTable[['sed[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(0.132, -12.912), ttestTable[['cil[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(0.551, -5.597), ttestTable[['ciu[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(0.324, -0.502), ttestTable[['es[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(0.122, -0.709), ttestTable[['ciles[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(0.524, -0.293), ttestTable[['ciues[stud]']], tolerance = 1e-3)
testthat::expect_equal(c(14.165, 6326.535), ttestTable[['stat[bf]']], tolerance = 1e-3)
testthat::expect_equal(c(0, 0), ttestTable[['err[bf]']], tolerance = 1e-3)
testthat::expect_equal(c(3468, 1261), ttestTable[['stat[wilc]']], tolerance = 1e-3)
testthat::expect_equal(c(0.001, 0), ttestTable[['p[wilc]']], tolerance = 1e-3)
# CRAN complained as follows ... apparently only an issue on older versions of macOS?
# ... anyway, you'll see i've set the tolerance really high to accommodate it
#
# ══ Failed tests ════════════════════════════════════════════════════════════════
# ── Failure ('testttestps.R:51:5'): All options in the ttestPS work (sunny) ─────
# c(0.356, -8.945) not equal to ttestTable[["md[wilc]"]].
# 1/2 mismatches
# [2] -8.95 - -8.93 == -0.0158
testthat::expect_equal(c(0.356, -8.945), ttestTable[['md[wilc]']], tolerance = 0.02)
testthat::expect_equal(c(0.105, 1.843), ttestTable[['sed[wilc]']], tolerance = 1e-3)
testthat::expect_equal(c(0.145, -12.849), ttestTable[['cil[wilc]']], tolerance = 1e-3)
testthat::expect_equal(c(0.561, -4.998), ttestTable[['ciu[wilc]']], tolerance = 1e-3)
testthat::expect_equal(c(0.373, -0.501), ttestTable[['es[wilc]']], tolerance = 1e-3)
# Test normality tests table
normTable <- r$norm$asDF
testthat::expect_equal(c('time 1', 'measure 1'), normTable[['var1']])
testthat::expect_equal(c('time 2', 'measure 2'), normTable[['var2']])
testthat::expect_equal(c(0.982, 0.988), normTable[['w']], tolerance = 1e-3)
testthat::expect_equal(c(0.19, 0.472), normTable[['p']], tolerance = 1e-3)
# Test descriptives table
descTable <- r$desc$asDF
testthat::expect_equal(c('time 1', 'time 2', 'measure 1', 'measure 2'), descTable[['name']])
testthat::expect_equal(c(100, 100, 100, 100), descTable[['num']])
testthat::expect_equal(c(0.237, -0.104, 0.041, 9.296), descTable[['m']], tolerance = 1e-3)
testthat::expect_equal(c(0.19, -0.187, -0.132, 7.791), descTable[['med']], tolerance = 1e-3)
testthat::expect_equal(c(1.065, 1.523, 1.006, 18.408), descTable[['sd']], tolerance = 1e-3)
testthat::expect_equal(c(0.107, 0.152, 0.101, 1.841), descTable[['se']], tolerance = 1e-3)
})
testthat::test_that('Matched rank biserial correlation is correct', {
df <- data.frame(
before = c(20, 22, 19, 20, 22, 18, 24, 20, 25),
after = c(38, 37, 33, 29, 14, 12, 20, 22, 25)
)
pairs <- list(list(i1='before', i2='after'))
r <- jmv::ttestPS(df, pairs, wilcoxon=TRUE, students=FALSE, effectSize=TRUE)
# Test rank biserial correlation
ttestTable <- r$ttest$asDF
testthat::expect_equal('before', ttestTable[['var1[wilc]']], tolerance = 1e-3)
testthat::expect_equal('after', ttestTable[['var2[wilc]']], tolerance = 1e-3)
testthat::expect_equal(9, ttestTable[['stat[wilc]']])
testthat::expect_equal(0.234, ttestTable[['p[wilc]']], tolerance = 1e-3)
testthat::expect_equal(-0.5, ttestTable[['es[wilc]']])
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.