tests/testthat/test-overlayDensities.R

generate_data <- function(n = 100, dist = c("norm", "exp", "lnorm", "t"), ...) {
  dist <- match.arg(dist)
  set.seed(0)
  switch(
    dist,
    norm = rnorm(n, ...),
    exp = rexp(n, ...),
    lnorm = rlnorm(n, ...),
    t = rt(n, ...)
  )
}

test_that("iscamaddexp creates an exponential plot", {
  vdiffr::expect_doppelganger("exponential", function() {
    iscamaddexp(generate_data(
      dist = "exp",
      rate = 2
    ))
  })
  res <- capture_plot_result(iscamaddexp(generate_data(
    dist = "exp",
    rate = 2
  )))
  expect_null(res$value)
  expect_snapshot(res$output)
})

test_that("iscamaddlnorm creates a log-normal plot", {
  vdiffr::expect_doppelganger("log-normal", function() {
    iscamaddlnorm(generate_data(dist = "lnorm"))
  })
  res <- capture_plot_result(iscamaddlnorm(generate_data(dist = "lnorm")))
  expect_null(res$value)
  expect_snapshot(res$output)
})

test_that("iscamaddnorm creates a normal plot", {
  vdiffr::expect_doppelganger("Normal plot", function() {
    iscamaddnorm(generate_data(dist = "norm"))
  })
  res <- capture_plot_result(iscamaddnorm(generate_data(dist = "norm")))
  expect_null(res$value)
  expect_snapshot(res$output)
})

test_that("iscamaddt creates a t-distribution plot", {
  vdiffr::expect_doppelganger("t-distribution", function() {
    iscamaddt(
      generate_data(dist = "t", df = 15),
      df = 15
    )
  })
  res <- capture_plot_result(iscamaddt(
    generate_data(dist = "t", df = 15),
    df = 15
  ))
  expect_null(res$value)
  expect_snapshot(res$output)
})

test_that("iscamaddtnorm creates a t and normal plot", {
  vdiffr::expect_doppelganger("t and normal", function() {
    iscamaddtnorm(
      generate_data(dist = "t", df = 1),
      df = 1
    )
  })
  res <- capture_plot_result(iscamaddtnorm(
    generate_data(dist = "t", df = 1),
    df = 1
  ))
  expect_null(res$value)
  expect_snapshot(res$output)
})

test_that("Plotting with custom parameters works", {
  vdiffr::expect_doppelganger("Custom params", function() {
    iscamaddnorm(
      generate_data(dist = "norm"),
      main = "Custom Title",
      xlab = "My Data",
      bins = 20
    )
  })
  res <- capture_plot_result(iscamaddnorm(
    generate_data(dist = "norm"),
    main = "Custom Title",
    xlab = "My Data",
    bins = 20
  ))
  expect_null(res$value)
  expect_snapshot(res$output)
})

test_that("iscamaddexp prints help for question mark", {
  help_lines <- capture_help_output(ISCAM::iscamaddexp("?"))
  expect_snapshot(collapse_output(help_lines))
})

test_that("iscamaddlnorm prints help for question mark", {
  help_lines <- capture_help_output(ISCAM::iscamaddlnorm("?"))
  expect_snapshot(collapse_output(help_lines))
})

test_that("iscamaddnorm prints help for question mark", {
  help_lines <- capture_help_output(ISCAM::iscamaddnorm("?"))
  expect_snapshot(collapse_output(help_lines))
})

test_that("iscamaddt prints help for question mark", {
  help_lines <- capture_help_output(ISCAM::iscamaddt("?"))
  expect_snapshot(collapse_output(help_lines))
})

test_that("iscamaddtnorm prints help for question mark", {
  help_lines <- capture_help_output(ISCAM::iscamaddtnorm("?"))
  expect_snapshot(collapse_output(help_lines))
})

Try the ISCAM package in your browser

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

ISCAM documentation built on Feb. 12, 2026, 5:07 p.m.