tests/testthat.R

library(testthat)
library(pwrMultivarsV2)

test_that("n", {
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.2, .4)) == c(59.18, 99.10, 58.64)), TRUE)
  expect_equal(all(pwrMultivars(n=500, es_units = "r", es = c(.2, .4)) == c(99.82, 100.00, 99.82)), TRUE)
  expect_equal(all(pwrMultivars(n=1000, es_units = "r", es = c(.2, .4)) == c(100, 100, 100)), TRUE)
})

test_that("es_units", {
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.1, .3)) == c(17.60, 87.34, 15.36)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "R", es = c(.1, .3)) == c(17.60, 87.34, 15.36)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "d", es = c(.1, .3)) == c(7.38, 31.54, 2.26)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "D", es = c(.1, .3)) == c(7.38, 31.54, 2.26)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r2", es = c(.1, .3)) == c(97.84, 100.00, 97.84)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "R2", es = c(.1, .3)) == c(97.84, 100.00, 97.84)), TRUE)
  expect_error(pwrMultivars(n=100, es_units = r, es = c(.1, .3)), "object 'r' not found")
  expect_error(pwrMultivars(n=100, es_units = "Etasq", es = c(.1, .3)), 'You have specified an invalid type effect size. Please select from "r", "d", or "r2".')
})

test_that("predictors", {
  expect_error(pwrMultivars(n=100, es_units = "r", es=c(.1)), "Argument 'es2' is missing, with no default")
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.1, .4)) == c(18.46, 99.00, 18.26)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.1, .4, .5)) == c(24.36, 99.80, 100.00, 24.32)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.1, .1, .1, .1, .1, .1, .1, .1, .1, .1))
                   == c(17.66, 16.80, 16.72, 16.72, 16.56, 16.74, 17.58, 17.00, 16.86, 16.42, 0.00)), TRUE)
})

test_that("null effect", {
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.6, .05), null_effect = 2) == c(100.00, 91.18, 91.18)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.5, .4, .01, .00), null_effect = c(3, 4)) == c(100.00, 99.84, 94.64, 94.84, 89.66)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.4, .4), null_effect = 2) == c(99.56, 0.30, 0.30)), TRUE)
})

test_that("iterations", {
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.35, .33), iterations = 1) == c(100, 100, 100)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.35, .33), iterations = 10) == c(90.00, 90.00, 90.00)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.35, .33), iterations = 100) == c(98.00, 95.00, 94.00)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.35, .33), iterations = 500) == c(96.60, 96.00, 93.40)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.35, .33), iterations = 1000) == c(97.30, 96.40, 94.10)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.35, .33), iterations = 5000) == c(97.16, 95.80, 93.04)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.35, .33), iterations = 10000) == c(97.04, 95.63, 92.76)), TRUE)
  # expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.35, .33), iterations = 100000) == c(96.92, 95.156, 92.221)), TRUE)
})

test_that("alpha", {
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30)) == c(75.62, 88.68, 66.86)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = .05) == c(75.62, 88.68, 66.86)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = .10) == c(84.38, 93.70, 79.02)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = .01) == c(52.84, 72.40, 38.52)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = .001) == c(24.98, 44.60, 11.36)), TRUE)
  expect_error(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = 0), "You have specified an incorrect alpha level. Please specify an alpha level greater than 0 and less than 1.")
  expect_error(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = -.5), "You have specified an incorrect alpha level. Please specify an alpha level greater than 0 and less than 1.")
  expect_error(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = 1.5), "You have specified an incorrect alpha level. Please specify an alpha level greater than 0 and less than 1.")
})

test_that("bonferroni", {
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), bonferroni = TRUE) == c(65.86, 82.18, 53.78)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), bonferroni = FALSE) == c(75.62, 88.68, 66.86)), TRUE)
})

test_that("alpha and bonferroni", {
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = .01, bonferroni = TRUE) == c(42.82, 64.20, 27.80)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), alpha = .005, bonferroni = FALSE) == c(42.82, 64.20, 27.80)), TRUE)


})

test_that("seed", {
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), seed = 1) == c(75.62, 88.68, 66.86)), TRUE)
  expect_equal(all(pwrMultivars(n=100, es_units = "r", es = c(.25, .30), seed = 2) == c(75.60, 88.68, 66.84)), TRUE)

})
suhdanny/pwrMultivars_V2 documentation built on April 1, 2022, 12:21 a.m.