tests/testthat/test_calcPearsonsR.R

## Daniel Gerlanc and Kris Kirby (2010-2012)
## Input and regression tests for the calcPearsonsR function

test_that("calcPearsonsR produces known result", {

  ## Create 2-group data.frame.
  g1        = c(11, 12, 13, 14, 15)
  g2        = c(26, 27, 28, 29)
  g3        = c(17, 18, 19, 20, 21, 22, 23)
  grpLabels = rep(c("A", "B"), times=c(length(g1), length(g2)))
  twoGpsA   = data.frame(x=c(g1, g2), team=grpLabels)
  twoGpsErr = data.frame(x=c(g1, g2), team=rep("A", length(c(g1, g2))))
  lambdas   = c(A=1, B=-1)

  ## Create 3-group data.frame.
  grpLabels3  = rep(c("A", "B", "C"), times=c(length(g1), length(g2), length(g3)))
  threeGps    = data.frame(grpLabels3, scores=c(g1, g2, g3))
  threeGpsVec = c(g1, g2, g3)
  lambdas3    = c(A=-1, B=2, C=-1)
  
  ## Regression test of calcPearsonsR for a 3-group contrast
  set.seed(1)
  truth = 0.9452
  r.res = bootES:::calcPearsonsR(threeGpsVec, freq=rep(1, length(threeGpsVec)), grps=grpLabels3, lambdas=lambdas3)
  expect_equal(truth, r.res, tolerance=1e-4)
})

test_that("produces same result with non-lexicographic contrast sorting", {
  dat = data.frame(cond=rep(c("A", "B", "C"), each=10), score=1:30)

  truth = 0.926
  res_1 = bootES(
    dat, data.col="score", group.col="cond", contrast=c(A=-1, B=0.5, C=0.5),
    effect.type="r")$t0
  expect_equal(truth, res_1, tolerance=1e-3)


  res_2 = bootES(
    dat, data.col="score", group.col="cond", contrast=c(B=0.5, C=0.5, A=-1),
    effect.type="r")$t0
  expect_equal(truth, res_2, tolerance=1e-3)


  res_3 = bootES(
    dat, data.col="score", group.col="cond", contrast=c(C=0.5, A=-1, B=0.5),
    effect.type="r")$t0
  expect_equal(truth, res_3, tolerance=1e-3)
})
dgerlanc/bootES documentation built on Nov. 15, 2024, 12:07 a.m.