tests/testthat/test-sparse-neurovec-as-matrix.R

test_that("as.matrix(SparseNeuroVec) matches dense roundtrip", {
  set.seed(1)
  sp <- NeuroSpace(c(10,10,10,3), c(2,2,2))
  arr <- array(rnorm(prod(c(10,10,10,3))), dim = c(10,10,10,3))
  dense <- DenseNeuroVec(arr, sp)
  # Make a mask with ~30% voxels
  m <- array(runif(10*10*10) > 0.7, c(10,10,10))
  sparse <- as.sparse(dense, LogicalNeuroVol(m, drop_dim(space(dense))))
  md <- as.matrix(dense)
  ms <- as.matrix(sparse)
  # zero-out voxels outside mask in the dense matrix for fair comparison
  mask_vec <- as.vector(m)
  md[!mask_vec, ] <- 0
  expect_equal(dim(md), dim(ms))
  expect_equal(md, ms, tolerance = 1e-7)
})

Try the neuroim2 package in your browser

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

neuroim2 documentation built on April 16, 2026, 5:07 p.m.