tests/testthat/test-ch8.R

context("Chapter 8")

test_that("Chapter 8 functions basically work", {
  n_short <- floor(cavo_2012 / 10)
  expect_output(
    object = print(BonettPrice_hybrid_Wilson_score_CI_CC_paired_2x2(cavo_2012)),
    regexp = "CI w / CC: estimate = 0.8667 \\(95% CI 0.7475 to 1.0058\\)"
  )
  expect_output(
    object = print(BonettPrice_hybrid_Wilson_score_CI_CC_paired_2x2(matrix(c(0, 1, 0, 2), 2))),
    regexp = "CI w / CC: estimate = 0.0000 \\(95% CI 0.0000 to 17.3081\\)"
  )
  expect_output(
    object = print(BonettPrice_hybrid_Wilson_score_CI_CC_paired_2x2(matrix(c(0, 0, 1, 2), 2))),
    regexp = "CI w / CC: estimate =    Inf \\(95% CI 0.0578 to    Inf\\)"
  )
  expect_output(
    object = print(BonettPrice_hybrid_Wilson_score_CI_CC_paired_2x2(matrix(c(9, 7, 0, 2), 2))),
    regexp = "CI w / CC: estimate = 0.5625 \\(95% CI 0.3330 to 0.9625\\)"
  )
  expect_output(
    object = print(BonettPrice_hybrid_Wilson_score_CI_CC_paired_2x2(matrix(c(9, 0, 8, 2), 2))),
    regexp = "CI w / CC: estimate = 1.8889 \\(95% CI 1.0926 to 3.2321\\)"
  )
  expect_output(
    object = print(BonettPrice_hybrid_Wilson_score_CI_paired_2x2(cavo_2012)),
    regexp = "estimate = 0.8667 \\(95% CI 0.7579 to 0.9910\\)"
  )
  expect_output(
    object = print(BonettPrice_hybrid_Wilson_score_CI_paired_2x2(cavo_2012 * 0)),
    regexp = "Wilson score CI: estimate =    NaN \\(95% CI 0.0000 to    Inf\\)"
  )
  expect_output(
    object = print(BonettPrice_hybrid_Wilson_score_CI_CC_paired_2x2(matrix(c(0, 0, 0, 2), 2))),
    regexp = "CI w / CC: estimate =    NaN \\(95% CI 0.0000 to    Inf\\)"
  )
  expect_output(
    object = print(ClopperPearson_exact_CI_1x2_beta_version(
      ligarden_2010["X"], ligarden_2010["n"]
    )),
    regexp = "exact CI: estimate = 0.8125 \\(95% CI 0.5435 to 0.9595\\)"
  )
  expect_output(
    object = print(ClopperPearson_exact_CI_1x2_beta_version(10, 10)),
    regexp = "Pearson exact CI: estimate = 1.0000 \\(95% CI 0.6915 to 1.0000\\)"
  )
  expect_output(
    object = print(ClopperPearson_exact_CI_1x2_beta_version(0, 10)),
    regexp = "Pearson exact CI: estimate = 0.0000 \\(95% CI 0.0000 to 0.3085\\)"
  )
  expect_output(
    object = print(McNemar_asymptotic_test_CC_paired_2x2(cavo_2012)),
    regexp = "McNemar test with continuity correction: P = 0.055009, Z =  1.919"
  )
  expect_output(
    object = print(McNemar_asymptotic_test_CC_paired_2x2(matrix(c(10, 0, 0, 1), 2))),
    regexp = "No discordant pairs"
  )
  expect_output(
    object = print(McNemar_asymptotic_test_paired_2x2(cavo_2012)),
    regexp = "The McNemar asymptotic test: P = 0.033006, Z = -2.132"
  )
  expect_output(
    object = print(McNemar_asymptotic_test_paired_2x2(matrix(c(10, 0, 0, 1), 2))),
    regexp = "No discordant pairs"
  )
  expect_output(
    object = print(McNemar_exact_cond_test_paired_2x2(cavo_2012)),
    regexp = "The McNemar exact conditional test: P = 0.052479"
  )
  expect_output(
    object = print(McNemar_exact_unconditional_test_paired_2x2(n_short)),
    regexp = "The McNemar exact unconditional test: P = 0.542071"
  )
  expect_output(
    object = print(McNemar_exact_unconditional_test_paired_2x2(tea  * 0)),
    regexp = "The McNemar exact unconditional test: P = 1.000000"
  )
  expect_output(
    object = print(McNemar_midP_test_paired_2x2(cavo_2012)),
    regexp = "The McNemar mid-P test: P = 0.034690"
  )
  expect_output(
    object = print(Tang_asymptotic_score_CI_paired_2x2(cavo_2012)),
    regexp = "estimate = 0.8667 \\(95% CI 0.7476 to 0.9876\\)"
  )
  expect_output(
    object = print(
      Tang_asymptotic_score_CI_paired_2x2(matrix(c(1, 2, NA, 4), 2))
    ),
    regexp = "score CI: estimate =     NA \\(95% CI 0.0000 to    Inf\\)"
  )
  expect_output(
    object = print(Tango_asymptotic_score_CI_paired_2x2(cavo_2012)),
    regexp = "score CI: estimate = -0.0621 \\(95% CI -0.1240 to -0.0054\\)"
  )
  expect_output(
    object = print(
      Tango_asymptotic_score_CI_paired_2x2(matrix(c(0, 0, 3, 0), 2))
    ),
    regexp = "Tango asymptotic .+ 1.0000 \\(95% CI -0.1230 to 1.0000\\)"
  )
  expect_output(
    object = print(
      Tango_asymptotic_score_CI_paired_2x2(matrix(c(0, 3, 0, 0), 2))
    ),
    regexp = "Tango asymptotic .+ -1.0000 \\(95% CI -1.0000 to 0.1230\\)"
  )
  expect_output(
    object = print(Wald_CI_diff_paired_2x2(cavo_2012)),
    regexp = "The Wald CI: estimate = -0.0621 \\(95% CI -0.1184 to -0.0058\\)"
  )
  expect_output(
    object = print(Wald_CI_diff_CC_paired_2x2(cavo_2012)),
    regexp = "estimate = -0.0621 \\(95% CI -0.1186 to -0.0057\\)"
  )
  expect_output(
    object = print(Wald_CI_diff_CC_paired_2x2(bentur_2009 * NA)),
    regexp = "Wald CI with continuity correction.+NA \\(95% CI.+NA to.+NA\\)"
  )
  expect_output(
    object = print(Wald_CI_AgrestiMin_paired_2x2(cavo_2012)),
    regexp = "adjustment: estimate = -0.0621 \\(95% CI -0.1182 to -0.0045\\)"
  )
  expect_output(
    object = print(MOVER_Wilson_score_CI_paired_2x2(cavo_2012)),
    regexp = "estimate = 0.8667 \\(95% CI 0.7592 to 0.9866\\)"
  )
  expect_output(
    object = print(MOVER_Wilson_score_CI_paired_2x2(bentur_2009 * 0)),
    regexp = "Wilson score CI: estimate =    NaN \\(95% CI    NaN to    Inf\\)"
  )
  expect_output(
    object = print(Newcombe_square_and_add_CI_paired_2x2(cavo_2012)),
    regexp = "estimate = -0.0621 \\(95% CI -0.1186 to -0.0046\\)"
  )
  expect_output(
    object = print(Newcombe_square_and_add_CI_paired_2x2(matrix(c(1, 0, 0, 1), 2))),
    regexp = "Newcombe square-and-add .+  0.0000 \\(95% CI -0.5734 to  0.5734\\)"
  )
  expect_output(
    object = print(Newcombe_square_and_add_CI_paired_2x2(matrix(c(0, 0, 0, 0), 2))),
    regexp = "Newcombe square-and-add .+ NaN \\(95% CI     NaN to     NaN\\)"
  )
  expect_output(
    object = print(Transformed_Wilson_score_CI_paired_2x2(cavo_2012)),
    regexp = "0.3750 \\(95% CI 0.1514 to 0.9287\\)"
  )
  expect_output(
    object = print(Wald_CI_BonettPrice_paired_2x2(cavo_2012)),
    regexp = "adjustment: estimate = -0.0621 \\(95% CI -0.1195 to -0.0032\\)"
  )
  expect_output(
    object = print(the_paired_2x2_table_CIs_difference(cavo_2012)),
    regexp = "Estimate of delta = pi_1\\+ - pi_\\+1: -0.062"
  )
  expect_output(
    object = print(the_paired_2x2_table_CIs_OR(ezra_2010)),
    regexp = "Estimate of theta_cond = n_12/n_21: 12.500"
  )
  expect_output(
    object = print(Wald_CI_OR_paired_2x2(ezra_2010)),
    regexp = "The Wald CI: estimate = 12.5000 \\(95% CI 2.9608 to 52.7731\\)"
  )
  expect_output(
    object = print(Wald_CI_OR_paired_2x2(matrix(c(1, 0, 3, 2), 2))),
    regexp = "The Wald CI: estimate =    Inf \\(95% CI 0.0000 to    Inf\\)"
  )
  expect_output(
    object = print(Wald_CI_OR_Laplace_paired_2x2(ezra_2010)),
    regexp = "adjustment: estimate = 12.5000 \\(95% CI 2.6232 to 28.6333\\)"
  )
  expect_output(
    object = print(Wald_CI_OR_Laplace_paired_2x2(matrix(c(1, NA, 2, 3), 2))),
    regexp = "adjustment: estimate =     NA \\(95% CI 0.0000 to    Inf\\)"
  )
  expect_output(
    object = print(Transformed_Clopper_Pearson_exact_CI_paired_2x2(ezra_2010)),
    regexp = "estimate = 12.5000 \\(95% CI 3.1169 to 108.8892\\)"
  )
  expect_output(
    object = print(Transformed_Clopper_Pearson_midP_CI_paired_2x2(ezra_2010)),
    regexp = "estimate = 12.5000 \\(95% CI 3.4681 to 78.2972\\)"
  )
  expect_output(
    object = print(Transformed_Blaker_exact_CI_paired_2x2(ezra_2010)),
    regexp = "estimate = 12.5000 \\(95% CI 3.2994 to 74.0582\\)"
  )
  expect_output(
    object = print(Wald_CI_ratio_paired_2x2(cavo_2012)),
    regexp = "The Wald CI: estimate = 0.8667 \\(95% CI 0.7597 to 0.9886\\)"
  )
  expect_output(
    object = print(Wald_CI_ratio_paired_2x2(matrix(c(0, 0, 10, 20), 2))),
    regexp = "The Wald CI: estimate =    Inf \\(95% CI 0.0000 to    Inf\\)"
  )
  expect_output(
    object = print(the_paired_2x2_table_CIs_ratio(cavo_2012)),
    regexp = "Estimate of phi = pi_1\\+/pi_\\+1: 0.867"
  )
  expect_output(
    object = print(the_paired_2x2_table_tests(n_short)),
    regexp = "Estimate of pi_\\+1: 6/14 = 0.429"
  )
})
ocbe-uio/contingencytables documentation built on Aug. 30, 2024, 7:16 a.m.