tests/testthat/test-s7-S7_union.R

test_that("S7_union", {
  expect_snapshot({
    construct(S7::class_vector)
    construct(S7::class_vector, opts_S7_union("|"))
    construct(S7::class_vector, opts_S7_union("new_union"))
    construct(S7::class_vector, opts_S7_union("next"))
    # check = FALSE because of changing environment address issues
    construct(S7::class_vector, opts_S7_union("next"), opts_S7_base_class("next"), check = FALSE)
  })
})


class_logical <- list(
  class = "logical",
  constructor_name = "logical",
  constructor = (function(.data = logical(0)) {
    .data
  }) |>
    (`environment<-`)(baseenv()),
  validator = (function(object) {
    if (base_class(object) != "logical") {
      sprintf("Underlying data must be logical not <%s>", base_class(object))
    }
  }) |>
    (`environment<-`)(baseenv())
) |>
  structure(class = "S7_base_class")

Try the constructive package in your browser

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

constructive documentation built on Nov. 5, 2025, 7:14 p.m.