tests/testthat/test_layouts.R

layouts <- get_layouts()

test_that("all layout functions are a function", {
  for (layout in layouts) {
    expect_true(
      is.function(asNamespace("gridify")[[layout]]),
      paste(layout, "fails")
    )
  }
})

test_that("all layout functions return a gridifyLayout", {
  for (layout in layouts) {
    expect_s4_class(asNamespace("gridify")[[layout]](), "gridifyLayout")
  }
})

test_that("all layout funs have any or some of args: margin, global_gpar, background, scales, adjust_height", {
  for (layout in layouts) {
    args <- formalArgs(asNamespace("gridify")[[layout]])
    expect_true(
      is.null(args) ||
        all(
          args %in%
            c("margin", "global_gpar", "background", "scales", "adjust_height")
        )
    )
  }
})

test_that("all layout functions contains layout in the name", {
  for (layout in layouts) {
    expect_true(grepl("layout", layout))
  }
})

layouts_with_scales_argument <- c("complex_layout", "simple_layout")

test_that("scales argument works correctly", {
  for (layout in layouts_with_scales_argument) {
    layout_func <- asNamespace("gridify")[[layout]]
    expect_silent(layout_func(scales = "free"))
    expect_silent(layout_func(scales = "fixed"))
  }
})

test_that("background argument works correctly", {
  for (layout in layouts) {
    layout_func <- asNamespace("gridify")[[layout]]
    expect_silent(layout_func(background = "lightgrey"))
    expect_silent(layout_func(background = NA_character_))
  }
})

test_that("global_gpar argument works correctly", {
  for (layout in layouts) {
    layout_func <- asNamespace("gridify")[[layout]]
    expect_silent(layout_func(global_gpar = grid::gpar(col = "black")))
  }
})

Try the gridify package in your browser

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

gridify documentation built on Feb. 5, 2026, 5:09 p.m.