From 7cb57fca3e62943efce65af6a6c1a49750289b8b Mon Sep 17 00:00:00 2001 From: Tim Cadman <41470917+timcadman@users.noreply.github.com> Date: Thu, 23 Jul 2026 17:26:53 +0200 Subject: [PATCH 1/2] add disclosure check for matrix assign function --- R/matrixDetDS1.R | 11 +++++++++++ tests/testthat/test-smk-matrixDetDS1.R | 22 +++++++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/R/matrixDetDS1.R b/R/matrixDetDS1.R index b0d2d6c6..b6fb40ce 100644 --- a/R/matrixDetDS1.R +++ b/R/matrixDetDS1.R @@ -16,6 +16,11 @@ matrixDetDS1 <- function(M1.name=NULL,logarithm){ +dsBase::checkPermissivePrivacyControlLevel(c('permissive', 'avocado', 'banana')) + +thr <- dsBase::listDisclosureSettingsDS() +nfilter.subset <- as.numeric(thr$nfilter.subset) + M1 <- .loadServersideObject(M1.name) .checkClass(obj = M1, obj_name = M1.name, permitted_classes = c("matrix", "data.frame")) @@ -33,6 +38,12 @@ if(ncol(M1)!=nrow(M1)) stop(error.message, call. = FALSE) } +#Check matrix large enough to reduce disclosure risk +if(nrow(M1) Date: Thu, 23 Jul 2026 17:27:56 +0200 Subject: [PATCH 2/2] revert: add back in list check --- tests/testthat/test-smk-matrixDetDS1.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/testthat/test-smk-matrixDetDS1.R b/tests/testthat/test-smk-matrixDetDS1.R index efb72eb3..37d39ac2 100644 --- a/tests/testthat/test-smk-matrixDetDS1.R +++ b/tests/testthat/test-smk-matrixDetDS1.R @@ -14,6 +14,8 @@ set.standard.disclosure.settings() test_that("simple matrixDetDS1 passes with matrix of sufficient dimensions", { M1 <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 10), 3, 3) res <- matrixDetDS1("M1", logarithm=FALSE) + + expect_true(is.list(res)) expect_equal(res$matrix.determinant, determinant(M1, logarithm=FALSE)) })