From 3a6f4028c502ac3260265efadeffb926068862c0 Mon Sep 17 00:00:00 2001 From: Leonidas Zhak <70497898+LeonidasZhak@users.noreply.github.com> Date: Fri, 28 Aug 2026 08:28:59 +0800 Subject: [PATCH] Fix ordered BatchtoolsParam iteration without reduction --- R/BatchtoolsParam-class.R | 2 -- inst/unitTests/test_BatchtoolsParam.R | 13 +++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/R/BatchtoolsParam-class.R b/R/BatchtoolsParam-class.R index 316cd98..5a348b6 100644 --- a/R/BatchtoolsParam-class.R +++ b/R/BatchtoolsParam-class.R @@ -461,8 +461,6 @@ setMethod("bpiterate", c("ANY", "ANY", "BatchtoolsParam"), FUN <- match.fun(FUN) if (missing(REDUCE)) { - if (reduce.in.order) - stop("REDUCE must be provided when 'reduce.in.order = TRUE'") if (!missing(init)) stop("REDUCE must be provided when 'init' is given") } diff --git a/inst/unitTests/test_BatchtoolsParam.R b/inst/unitTests/test_BatchtoolsParam.R index c44af20..f22ac37 100644 --- a/inst/unitTests/test_BatchtoolsParam.R +++ b/inst/unitTests/test_BatchtoolsParam.R @@ -423,12 +423,25 @@ test_BatchtoolsParam_bpiterate <- function() { target <- list(105, 205, 305, 405, 505) checkIdentical(target, res) + ## Test ordered results without REDUCE on multicore + param <- BatchtoolsParam() + res <- bpiterate(ITER=ITER(), FUN=FUN, k=5, + reduce.in.order=TRUE, + BPPARAM=param) + checkIdentical(target, res) + ## socket cluster param <- BatchtoolsParam(cluster="socket") res <- bpiterate(ITER=ITER(), FUN=FUN, k=5, BPPARAM=param) ## Check Identical result checkIdentical(target, res) + ## Test ordered results without REDUCE on socket + res <- bpiterate(ITER=ITER(), FUN=FUN, k=5, + reduce.in.order=TRUE, + BPPARAM=param) + checkIdentical(target, res) + ## Test REDUCE on socket res <- bpiterate(ITER=ITER(), FUN=FUN, k=5, REDUCE=`+`,