Nothing
# tests/testthat/test-lifecycle.R
test_that("register -> retrieve -> release lifecycle works for matrix and vector", {
ns <- paste0("lifecycle_", Sys.getpid(), "_", sample.int(1e6, 1))
mat <- matrix(as.double(1:6), nrow = 2, ncol = 3)
vec <- as.double(1:3)
# Ensure clean state
on.exit({
# Try to release; ignore errors in case they were already released
try(memshare::releaseViews(ns, c("mat", "vec")), silent = TRUE)
try(memshare::releaseVariables(ns, c("mat", "vec")), silent = TRUE)
}, add = TRUE)
memshare::registerVariables(ns, list(mat = mat, vec = vec))
# pageList() should show both names
pages <- memshare::pageList()
expect_true(any(grepl(paste0(ns, ".mat"), pages, fixed = TRUE)))
expect_true(any(grepl(paste0(ns, ".vec"), pages, fixed = TRUE)))
# Retrieve views and check contents
views <- memshare::retrieveViews(ns, c("mat", "vec"))
expect_true(is.matrix(views$mat))
expect_true(is.numeric(views$vec))
expect_equal(views$mat, mat)
expect_equal(as.numeric(views$vec), vec)
# viewList() must reflect that we hold mat and vec
vlist <- memshare::viewList()
expect_true(any(grepl(paste0(ns, ".mat"), vlist, fixed = TRUE)))
expect_true(any(grepl(paste0(ns, ".vec"), vlist, fixed = TRUE)))
# Release views
memshare::releaseViews(ns, c("mat", "vec"))
vlist_after <- memshare::viewList()
expect_false(any(grepl(paste0(ns, ".mat"), vlist_after, fixed = TRUE)))
expect_false(any(grepl(paste0(ns, ".vec"), vlist_after, fixed = TRUE)))
# Release variables
memshare::releaseVariables(ns, c("mat", "vec"))
pages_after <- memshare::pageList()
expect_false(any(grepl(paste0(ns, ".mat"), pages_after, fixed = TRUE)))
expect_false(any(grepl(paste0(ns, ".vec"), pages_after, fixed = TRUE)))
})
test_that("retrieveMetadata reports correct dimensions for matrices", {
ns <- paste0("metadata_", Sys.getpid(), "_", sample.int(1e6, 1))
mat <- matrix(runif(12), 3, 4)
on.exit({
try(memshare::releaseViews(ns, "mat"), silent = TRUE)
try(memshare::releaseVariables(ns, "mat"), silent = TRUE)
}, add = TRUE)
memshare::registerVariables(ns, list(mat = mat))
meta <- memshare::retrieveMetadata(ns, "mat")
# NOTE: retrieveMetadata may implicitly create a view (as per your docs),
# so we must release that.
expect_equal(meta$type, "matrix")
expect_equal(meta$nrow, nrow(mat))
expect_equal(meta$ncol, ncol(mat))
memshare::releaseViews(ns, "mat")
memshare::releaseVariables(ns, "mat")
})
test_that("register/retrieve/release lifecycle is consistent", {
ns <- paste0("test_ns", Sys.getpid(), "_", sample.int(1e6, 1))
mat <- matrix(as.double(1:6), 2, 3)
registerVariables(ns, list(MATRIX = mat))
expect_true(length(pageList()) >= 1L)
views <- retrieveViews(ns, "MATRIX")
expect_true("MATRIX" %in% names(views))
expect_equal(views$MATRIX, mat)
releaseViews(ns, "MATRIX")
releaseVariables(ns, "MATRIX")
expect_false(any(grepl("MATRIX", unlist(pageList()), fixed = TRUE)))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.