## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----echo=TRUE, results='markup', comment=""----------------------------------
library(testthat)
library(BSW)
df <- data.frame(y = rep(c(0, 1), each = 250), 
                 x = rep(c(0, 1, 0, 1), times = c(200, 50, 50, 200))
                 )
RR <- (200 * 250) / (50 * 250)
SE <- sqrt((1/200 + 1/50) - (1/250 + 1/250))
fit <- bsw(y ~ x, df)
out <- summary(fit)

## ----echo=TRUE, results='markup', comment=""----------------------------------
test_that(desc = "Estimated relative risk is equal to 4",
          code = {
                  expect_equal(object = unname(exp(coef(fit)[2])),
                               expected = RR)
            }
          )

## ----echo=TRUE, results='markup', comment=""----------------------------------
test_that(desc = "Estimated standard error is equal to 0.1303840",
          code = {
                  expect_equal(object = unname(out$std.err[2]), 
                               expected = SE)
            }
          )

## ----echo=TRUE, results='markup', comment=""----------------------------------
test_that(desc = "Estimated z-value is equal to 10.63239",
          code = {
                  expect_equal(object = unname(out$z.value[2]), 
                               expected = log(RR) / SE)
            }
          )

## ----echo=TRUE, results='markup', comment=""----------------------------------
test_that(desc = "Estimated 95% confidence interval limits are equal to 3.097968 and 5.164676",
          code = {
                  expect_equal(object = unname(exp(confint(fit)[2,])), 
                               expected = exp(log(RR) + SE * qnorm(c(0.025, 0.975))))
            }
          )

