tests/testthat/test-examples.R

if (!nzchar(Sys.getenv("_R_CHECK_PACKAGE_NAME_"))) {
  withr::local_envvar(NOT_CRAN = "true")
}

run_example <- function(example_name) {
  example_path <- system.file("examples", example_name, package = "arl")
  if (!nzchar(example_path)) {
    example_path <- testthat::test_path("../../inst/examples", example_name)
  }
  testthat::skip_if_not(file.exists(example_path), "Example file not found")

  engine <- Engine$new()
  capture.output(engine$load_file_in_env(example_path))
  invisible(TRUE)
}

thin <- make_cran_thinner()

test_that("fibonacci example runs end-to-end", {
  thin()
  expect_no_error(run_example("fibonacci.arl"))
})

test_that("quicksort example runs end-to-end", {
  thin()
  expect_no_error(run_example("quicksort.arl"))
})

test_that("fizzbuzz example runs end-to-end", {
  thin()
  expect_no_error(run_example("fizzbuzz.arl"))
})

test_that("macro examples run end-to-end", {
  thin()
  expect_no_error(run_example("macro-examples.arl"))
})

test_that("data analysis example runs end-to-end", {
  thin()
  expect_no_error(run_example("data-analysis.arl"))
})

test_that("graph paths example runs end-to-end", {
  thin()
  expect_no_error(run_example("graph-paths.arl"))
})

test_that("sales report example runs end-to-end", {
  thin()
  expect_no_error(run_example("sales-report.arl"))
})

test_that("log parser example runs end-to-end", {
  thin()
  expect_no_error(run_example("log-parser.arl"))
})

test_that("pipeline macros example runs end-to-end", {
  thin()
  expect_no_error(run_example("pipeline-macros.arl"))
})

test_that("task runner example runs end-to-end", {
  thin()
  expect_no_error(run_example("task-runner.arl"))
})

Try the arl package in your browser

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

arl documentation built on March 19, 2026, 5:09 p.m.