From edc63ad9e192ad7820f9bb206eb583d77bda8741 Mon Sep 17 00:00:00 2001 From: Nicolau Manubens Date: Sun, 20 Jan 2019 23:16:06 +0100 Subject: [PATCH 1/2] Solving bug with nested environments. --- tests/testthat/test-use-cases.R | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/testthat/test-use-cases.R b/tests/testthat/test-use-cases.R index b2533c8..169366c 100644 --- a/tests/testthat/test-use-cases.R +++ b/tests/testthat/test-use-cases.R @@ -1357,6 +1357,22 @@ test_that("Dimension names are propagated correctly.", { f) }) +# Test nested environments are linked properly +test_that("Nested environments are linked properly.", { + #create input + forecast <- array(dim = c('31', '12', '4'), + rnorm(31 * 12 * 4)) + names(dim(forecast)) <- c('sday', 'syear', 'ensemble') + + anomaly_simple <- function(data) { + avg <- Apply(data, c('syear', 'ensemble'), mean)[[1]] + anom <- Apply(data, c('sday'), function(x) x - avg)[[1]] + return(anom) + } + + anomaly <- anomaly_simple(forecast) +}) + # TODOS: # TESTS FOR MARGINS # TESTS FOR DISORDERED TARGET_DIMS -- GitLab From 2b7a338ee4dc44a9170781907e5bac339187c2cd Mon Sep 17 00:00:00 2001 From: Nicolau Manubens Date: Mon, 21 Jan 2019 00:30:06 +0100 Subject: [PATCH 2/2] Actual fix. --- R/Apply.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/Apply.R b/R/Apply.R index ba213f5..7d46cde 100644 --- a/R/Apply.R +++ b/R/Apply.R @@ -506,7 +506,7 @@ Apply <- function(data, target_dims = NULL, fun, ..., chunk_sizes <- c(chunk_sizes, total_size %% chunk_size) } - fun_env <- new.env() + fun_env <- new.env(parent = parent.frame()) for (i in seq_along(extra_info)) { assign(names(extra_info)[i], extra_info[[i]], envir = fun_env) } -- GitLab