tests/testthat/test-confounders.ext.R

context("check bias due to unmeasured confounders based on external adjustment")

test_that("correct if null bias parameters", {
    expect_output(confounders.ext(RR = 1), regexp = NA)
})

test_that("correct number of arguments for bias parameters", {
    expect_error(confounders.ext(RR = 1,
                                 bias_parms = c(0.1, 0.9, 0.1)))
})

test_that("prevalence of confounder between 0 and 1", {
    expect_error(confounders.ext(RR = 1,
                                 bias_parms = c(0.1, 0.9, 2, 0.4)))
})

test_that("prevalence of exposure between 0 and 1", {
    expect_error(confounders.ext(RR = 1,
                                 bias_parms = c(0.1, 0.9, 0.1, 2)))
})

test_that("association between confounder and outcome >= 0", {
    expect_error(confounders.ext(RR = 1,
                                 bias_parms = c(-1, 0.9, 0.1, 0.4)))
})

test_that("association between exposure and confounder >= 0", {
    expect_error(confounders.ext(RR = 1,
                                 bias_parms = c(0.1, -1, 0.1, 0.4)))
})

test_that("true RR > 0", {
    expect_error(confounders.ext(RR = -1,
                                 bias_parms = c(0.1, 0.9, 0.1, 0.4)))
})

test_that("results ok!", {
    model <- confounders.ext(RR = 1,
                             bias_parms = c(0.1, 0.9, 0.1, 0.4))
    expect_equal(as.numeric(model[[3]][1]), 1.0093, tolerance = 1e-4)
    expect_equal(as.numeric(model[[3]][2]), 0.9328, tolerance = 1e-4)
})

Try the episensr package in your browser

Any scripts or data that you put into this service are public.

episensr documentation built on Aug. 30, 2023, 5:09 p.m.