DFBA/tests/testthat/test-dfba_binomial.R

# Binomial Test

  Abin<-dfba_binomial(n1 = 16,
                      n2 = 2)

  # Error Tests

  test_that("Unreasonable probability intervals must be stopped",{
    expect_error(dfba_binomial(n1 = 16,
                               n2 = 2,
                               prob_interval = 23),
                 "prob_interval must be greater than 0 and less than 1")
  })

  test_that("Missing a0 parameter produces stop error",{
    expect_error(dfba_binomial(a0 = NA,
                               n1 = 16,
                               n2 = 2),
                 "Both a0 and b0 must be positive and finite")
  })

  test_that("Missing b0 parameter produces stop error",{
    expect_error(dfba_binomial(b0 = NA,
                               n1 = 16,
                               n2 = 2),
                 "Both a0 and b0 must be positive and finite")
  })

  test_that("n's cannot be negative",{
    expect_error(dfba_binomial(n1 = -16,
                               n2 = 2),
                 "Neither n1 nor n2 can be negative")
  })

  test_that("n's must be integers",{
    expect_error(dfba_binomial(n1 = 16.666,
                               n2 = 2),
                 "n1 and n2 must be integers")
  })

  # Function Tests
  test_that("Posterior a parameter is correct",{
    expect_equal(floor(Abin$a_post+.1), 17)
  })

  test_that("Posterior b parameter is correct",{
    expect_equal(floor(Abin$b_post+.1), 3)
  })

  test_that("Posterior phi mean is correct",{
    expect_lte(abs(Abin$phimean-0.85), 3e-05)
  })

  test_that("Posterior phi median is correct",{
    expect_lte(abs(Abin$phimedian-0.8617288), 3e-05)
  })

  test_that("Posterior phi mode is correct",{
    expect_lte(abs(Abin$phimode-0.8888889), 3e-05)
  })

  test_that("ETI lower limit is correct",{
    expect_lte(abs(Abin$eti_lower-0.6686233), 3e-05)
  })

  test_that("ETI upper limit is correct",{
    expect_lte(abs(Abin$eti_upper-0.9661738), 3e-05)
  })

  test_that("HDI lower limit is correct",{
    expect_lte(abs(Abin$hdi_lower-0.6973879), 3e-05)
  })

  test_that("HDI upper limit is correct",{
    expect_lte(abs(Abin$hdi_upper-0.9801174), 3e-05)
  })
danbarch/dfba documentation built on Jan. 30, 2024, 6:51 p.m.