testthat::context('proptestn')
data('HairEyeColor')
testthat::test_that('All options in the propTestN work (sunny)', {
suppressWarnings(RNGversion("3.5.0"))
set.seed(1337)
df <- data.frame(
`x 1` = sample(letters[1:4], size = 100, replace = TRUE, prob = c(3, 1, 1, 1)),
check.names = FALSE
)
r <- jmv::propTestN(
df,
var = "x 1",
expected = TRUE,
ratio = c(3, 1, 1, 1)
)
# Test proportions table
propsTable <- r$props$asDF
testthat::expect_equal(c('a', 'b', 'c', 'd'), propsTable[['level']])
testthat::expect_equal(c(45, 23, 16, 16), propsTable[['count[obs]']])
testthat::expect_equal(c(0.45, 0.23, 0.16, 0.16), propsTable[['prop[obs]']], tolerance = 1e-3)
testthat::expect_equal(
c(50, 16.667, 16.667, 16.667), propsTable[['count[exp]']], tolerance = 1e-3
)
testthat::expect_equal(c(0.5, 0.167, 0.167, 0.167), propsTable[['prop[exp]']], tolerance = 1e-3)
# Test test statistics table
testTable <- r$tests$asDF
testthat::expect_equal(2.96, testTable[['chi']], tolerance = 1e-3)
testthat::expect_equal(3, testTable[['df']])
testthat::expect_equal(0.398, testTable[['p']], tolerance = 1e-3)
})
testthat::test_that('All options in the propTestN work with counts', {
df <- as.data.frame(HairEyeColor)
r <- jmv::propTestN(
df,
var = 'Eye',
counts = 'Freq',
expected = TRUE,
ratio = c(2,1,1,1)
)
# Test proportions table
propsTable <- r$props$asDF
testthat::expect_equal(c('Brown', 'Blue', 'Hazel', 'Green'), propsTable[['level']])
testthat::expect_equal(c(220, 215, 93, 64), propsTable[['count[obs]']])
testthat::expect_equal(
c(0.372, 0.363, 0.157, 0.108), propsTable[['prop[obs]']], tolerance = 1e-3
)
testthat::expect_equal(
c(236.8, 118.4, 118.4, 118.4), propsTable[['count[exp]']], tolerance = 1e-3
)
testthat::expect_equal(c(0.4, 0.2, 0.2, 0.2), propsTable[['prop[exp]']], tolerance = 1e-3)
# Test test statistics table
testTable <- r$tests$asDF
testthat::expect_equal(110.449, testTable[['chi']], tolerance = 1e-3)
testthat::expect_equal(3, testTable[['df']])
testthat::expect_equal(0, testTable[['p']], tolerance = 1e-3)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.