tests/testthat/test-compute_interaction.R

test_that("standard interaction", {
  suppressMessages(
    demo <-
      demo_  |>
      add_drug(d_code = ex_$d_drecno, drug_data = drug_) |>
      add_adr(a_code = ex_$a_llt, adr_data = adr_)
  )

  z = "a_colitis"
  y = "nivolumab"
  x = "ipilimumab"

  res_int <-
    compute_interaction(x = x,
                        y = y,
                        z = z,
                        .data = demo)

  res_Table <-
    demo |>
    arrow::as_arrow_table() |>
    compute_interaction(x = x,
                        y = y,
                        z = z)

  n_exp_true <-
    c(41 * 2 * 26 * 750 / # 2 by 2 pairs and n total
        (25 * 140 * 58) # each variable
      )

  ic_true <-
    log((18 + .5)  / (n_exp_true + .5), base = 2)

  ic_tail_true <-
    ic_tail(18, n_exp_true)

  expect_equal(res_int$n_exp, n_exp_true)

  expect_equal(res_int$ic, ic_true)

  expect_equal(res_int$ic_tail, ic_tail_true)

  expect_equal(res_int, res_Table)

})

test_that("vectorization works", {
  suppressMessages(
    demo <-
      demo_  |>
      add_drug(d_code = ex_$d_drecno, drug_data = drug_) |>
      add_adr(a_code = ex_$a_llt, adr_data = adr_)
  )

  z = c("a_colitis", "a_pneumonitis")
  y = c("nivolumab", "pembrolizumab")
  x = c("ipilimumab", "atezolizumab")

  res_int <-
    compute_interaction(x = x,
                        y = y,
                        z = z,
                        .data = demo)

  # a bit short
  expect_snapshot(res_int)

})

test_that("formatting output works", {
  suppressMessages(
    demo <-
      demo_  |>
      add_drug(d_code = ex_$d_drecno, drug_data = drug_) |>
      add_adr(a_code = ex_$a_llt, adr_data = adr_)
  )

  z = c("a_colitis", "a_pneumonitis")
  y = "nivolumab"
  x = "ipilimumab"

  res_int_raw <-
    compute_interaction(x = x,
                        y = y,
                        z = z,
                        .data = demo,
                        export_raw_values = TRUE)

  # a bit short too
  expect_snapshot(res_int_raw)

  res_int_minn <-
    compute_interaction(x = x,
                        y = y,
                        z = z,
                        .data = demo,
                        min_n_obs = 15)

  # a bit short too
  expect_snapshot(res_int_minn)

})

Try the vigicaen package in your browser

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

vigicaen documentation built on April 3, 2025, 8:55 p.m.