From dc3f5313398f48192d48c3b15fac28451c1b32e2 Mon Sep 17 00:00:00 2001 From: aho Date: Fri, 14 Apr 2023 16:22:53 +0200 Subject: [PATCH 1/2] load libraries from use_libraries --- R/ByChunks.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/ByChunks.R b/R/ByChunks.R index 37a554c..2587608 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -735,6 +735,9 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', } #TODO: Find a better way to assign the names of data. When multiple steps for Compute is available, this way may fail. names(data) <- names(cube_headers) + # Load libraries + invisible(lapply(attr(step_fun, 'UseLibraries'), library, character.only = TRUE)) + t_begin_compute <- Sys.time() result <- multiApply::Apply(data, target_dims = attr(step_fun, 'TargetDims'), -- GitLab From 3339680c6bbdeef94eb0d813e665e7d5f039633a Mon Sep 17 00:00:00 2001 From: aho Date: Thu, 27 Jul 2023 17:23:59 +0200 Subject: [PATCH 2/2] change unit test for use_libraries --- tests/testthat/test-Compute-timedim.R | 33 +++++++++++++++++++++------ 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/tests/testthat/test-Compute-timedim.R b/tests/testthat/test-Compute-timedim.R index 80d96ff..6b81389 100644 --- a/tests/testthat/test-Compute-timedim.R +++ b/tests/testthat/test-Compute-timedim.R @@ -16,21 +16,37 @@ suppressWarnings( retrieve = FALSE) ) +#------------(1) specify package name in front of function fun_spring <- function(x) { - y <- s2dv::Season(x, time_dim = 'time', monini = 1, moninf = 3, monsup = 5) - return(y) + y <- s2dv::Season(x, time_dim = 'time', monini = 1, moninf = 3, monsup = 5) + dummy <- pryr::object_size(y) + return(y) } - step1 <- Step(fun = fun_spring, target_dims = c('var', 'time'), output_dims = c('var', 'time')) - wf1 <- AddStep(data, step1) +#------------(2) use use_libraries + fun_spring2 <- function(x) { + y <- Season(x, time_dim = 'time', monini = 1, moninf = 3, monsup = 5) + dummy <- object_size(y) + return(y) + } + step2 <- Step(fun = fun_spring2, + target_dims = c('var', 'time'), + output_dims = c('var', 'time'), + use_libraries = c('s2dv', 'pryr')) + wf2 <- AddStep(data, step2) + +#------------------------------------- suppressWarnings( - res1 <- Compute(wf1, - chunks = list(ensemble = 2)) + res1 <- Compute(wf1, chunks = list(ensemble = 2)) ) +suppressWarnings( + res2 <- Compute(wf2, chunks = list(ensemble = 2)) +) +#======================================= expect_equal( attr(data, 'Dimensions'), @@ -51,7 +67,10 @@ c(256.4469, 260.3636), tolerance = 0.0001 ) - +expect_equal( +c(res1$output), +c(res2$output) +) }) -- GitLab