tests/testthat/test-altrep-behavior.R

# tests/testthat/test-altrep-behavior.R

test_that("ALTREP views behave like ordinary matrices/vectors for basic ops", {
  ns <- paste0("altrep_", Sys.getpid(), "_", sample.int(1e6, 1))
  
  mat <- matrix(rnorm(20), 5, 4)
  vec <- rnorm(5)
  
  on.exit({
    try(memshare::releaseVariables(ns, c("mat", "vec")), silent = TRUE)
  }, add = TRUE)
  
  memshare::registerVariables(ns, list(mat = mat, vec = vec))
  views <- memshare::retrieveViews(ns, c("mat", "vec"))
  
  # Basic properties
  expect_true(is.matrix(views$mat))
  expect_true(is.numeric(views$vec))
  expect_equal(dim(views$mat), dim(mat))
  expect_equal(length(views$vec), length(vec))
  
  # Basic operations
  expect_equal(colSums(views$mat), colSums(mat))
  expect_equal(rowMeans(views$mat), rowMeans(mat))
  expect_equal(sum(views$vec), sum(vec))
  
  memshare::releaseViews(ns, c("mat", "vec"))
})

Try the memshare package in your browser

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

memshare documentation built on Dec. 5, 2025, 9:07 a.m.