tests/testthat/test.stat.R

context("Test statistics")

# compare test statistics and P-values with textbook (some of them are not that close)
# note use of scale=1 for expect_equal to get absolute difference

test_that("test stats with leghorn data", {
  w=p.val("d",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,0.171,tolerance=0.005,scale=1)
  expect_gt(w$p.value,0.25)
  w=p.val("v",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,0.216,tolerance=0.002,scale=1)
  expect_gt(w$p.value,0.25)
  w=p.val("w2",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,0.187,tolerance=0.004,scale=1)
  expect_gt(w$p.value,0.20)
  w=p.val("u2",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,0.051,tolerance=0.002,scale=1)
  expect_gt(w$p.value,0.25)
  w=p.val("a2",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,1.017,tolerance=0.002,scale=1)
  expect_gt(w$p.value,0.25)
})

test_that("testing for uniformity on z1", {
  w1=calc.stat("d",leghorn$x,pnorm,200,35)
  w2=calc.stat("d",leghorn$z1)
  expect_equal(w1,w2)
  w1=calc.stat("v",leghorn$x,pnorm,200,35)
  w2=calc.stat("v",leghorn$z1)
  expect_equal(w1,w2)
  w1=calc.stat("w2",leghorn$x,pnorm,200,35)
  w2=calc.stat("w2",leghorn$z1)
  expect_equal(w1,w2)
  w1=calc.stat("u2",leghorn$x,pnorm,200,35)
  w2=calc.stat("u2",leghorn$z1)
  expect_equal(w1,w2)
  w1=calc.stat("a2",leghorn$x,pnorm,200,35)
  w2=calc.stat("a2",leghorn$z1)
  expect_equal(w1,w2)

})

test_that("modified test stats", {
  w=p.val("dmod",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,0.790,tolerance=0.001,scale=1)
  expect_gt(w$p.value,0.25)
  w=p.val("vmod",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,1.011,tolerance=0.002,scale=1)
  expect_gt(w$p.value,0.25)
  w=p.val("w2mod",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,0.177,tolerance=0.02,scale=1)
  expect_gt(w$p.value,0.25)
  w=p.val("u2mod",leghorn$x,nsim=1e4,sim=rnorm,calc=pnorm,200,35)
  expect_equal(w$test.stat,0.048,tolerance=0.004,scale=1)
  expect_gt(w$p.value,0.25)
})

test_that("P-values with beta data", {
  w=p.val("d",beta_data,nsim=1e4,sim=runif,calc=punif)
  expect_lt(w$p.value,0.05)
  w=p.val("v",beta_data,nsim=1e4,sim=runif,calc=punif)
  expect_lt(w$p.value,0.05)
  w=p.val("w2",beta_data,nsim=1e4,sim=runif,calc=punif)
  expect_lt(w$p.value,0.05)
  w=p.val("u2",beta_data,nsim=1e4,sim=runif,calc=punif)
  expect_lt(w$p.value,0.10)
  w=p.val("a2",beta_data,nsim=1e4,sim=runif,calc=punif)
  expect_lt(w$p.value,0.05)
})

test_that("test stats on circle",{
  x=circle
  y=x-0.25
  w=calc.stat("d",x)
  ww=calc.stat("d",y)
  expect_gt(abs(w-ww),0)
  w=calc.stat("v",x)
  ww=calc.stat("v",y)
  expect_equal(w,ww)
  w=calc.stat("w2",x)
  ww=calc.stat("w2",y)
  expect_gt(abs(w-ww),0)
  w=calc.stat("u2",x)
  ww=calc.stat("u2",y)
  expect_equal(w,ww)
  w=calc.stat("a2",x)
  ww=calc.stat("a2",y)
  expect_gt(abs(w-ww),0)
})
nxskok/edfr documentation built on May 24, 2019, 11:51 a.m.