diff --git a/R/CST_Subset.R b/R/CST_Subset.R index 098df3dff90af695fe097e6aca83cdb06b26d418..cb075285929f47bd1349ae8d224342a162617014 100644 --- a/R/CST_Subset.R +++ b/R/CST_Subset.R @@ -120,6 +120,9 @@ CST_Subset <- function(x, along, indices, drop = FALSE, var_dim = NULL, } } # Remove metadata from variables that were dropped + if(sum(c(names(x$dims), x$attrs$Variable$varName) %in% names(x$attrs$Variable$metadata)) == 0){ + stop("variable names not found in metadata") + } vars_to_keep <- na.omit(match(c(names(x$dims), (x$attrs$Variable$varName)), names(x$attrs$Variable$metadata))) x$attrs$Variable$metadata <- x$attrs$Variable$metadata[vars_to_keep] diff --git a/tests/testthat/test-as.s2dv_cube.R b/tests/testthat/test-as.s2dv_cube.R index 8ff195827853e4e974a147ea75d2617786c9e22e..060c8df5d2b65b9faefbbe96ba2d64446aaf568c 100644 --- a/tests/testthat/test-as.s2dv_cube.R +++ b/tests/testthat/test-as.s2dv_cube.R @@ -331,45 +331,45 @@ test_that("7. Tests from Start()", { }) ############################################## - -test_that("8. Tests from Start()", { - path <- paste0('/esarchive/exp/ecearth/a3t4/diags/CMIP/EC-Earth-Consortium/EC-Earth3-LR/piControl/$memb$/Omon/$var$/gn/', - 'v*/$var$_Omon_EC-Earth3-LR_piControl_$memb$_gn_$chunk$.nc') - suppressWarnings( - data7 <- Start(dat = list(list(name = 'a3t4', path = path)), - var = 'tosmean', - memb = paste0('r', 1:5, 'i1p1f1'), - region = c("ATL3", "Global_Ocean", "Nino3.4"), - time = indices(1:10), - chunk = 'all', - time_across = 'chunk', - merge_across_dims = TRUE, - return_vars = list(time = 'chunk', region = NULL), - num_procs = 8, - retrieve = T) - ) - - res7 <- as.s2dv_cube(data7) - - # dimensions - expect_equal( - dim(res7$data), - c(dat = 1, var = 1, memb = 5, region = 3, time = 10) - ) - # elements - expect_equal( - names(res7), - c("data", "dims", "coords", "attrs") - ) - expect_equal( - res7$attrs$Variable$varName, - c('tosmean') - ) - # Dates - expect_equal( - dim(res7$attrs$Dates), - c(time = 10) - ) -}) +# commented as 'path' not available +# test_that("8. Tests from Start()", { +# path <- paste0('/esarchive/exp/ecearth/a3t4/diags/CMIP/EC-Earth-Consortium/EC-Earth3-LR/piControl/$memb$/Omon/$var$/gn/', +# 'v*/$var$_Omon_EC-Earth3-LR_piControl_$memb$_gn_$chunk$.nc') +# suppressWarnings( +# data7 <- Start(dat = list(list(name = 'a3t4', path = path)), +# var = 'tosmean', +# memb = paste0('r', 1:5, 'i1p1f1'), +# region = c("ATL3", "Global_Ocean", "Nino3.4"), +# time = indices(1:10), +# chunk = 'all', +# time_across = 'chunk', +# merge_across_dims = TRUE, +# return_vars = list(time = 'chunk', region = NULL), +# num_procs = 8, +# retrieve = T) +# ) +# +# res7 <- as.s2dv_cube(data7) +# +# # dimensions +# expect_equal( +# dim(res7$data), +# c(dat = 1, var = 1, memb = 5, region = 3, time = 10) +# ) +# # elements +# expect_equal( +# names(res7), +# c("data", "dims", "coords", "attrs") +# ) +# expect_equal( +# res7$attrs$Variable$varName, +# c('tosmean') +# ) +# # Dates +# expect_equal( +# dim(res7$attrs$Dates), +# c(time = 10) +# ) +# }) ############################################## \ No newline at end of file