Last updated on 2025-12-20 11:50:34 CET.
| Flavor | Version | Tinstall | Tcheck | Ttotal | Status | Flags |
|---|---|---|---|---|---|---|
| r-devel-linux-x86_64-debian-clang | 2.1.2 | 18.16 | 229.90 | 248.06 | ERROR | |
| r-devel-linux-x86_64-debian-gcc | 2.1.2 | 10.53 | 154.09 | 164.62 | ERROR | |
| r-devel-linux-x86_64-fedora-clang | 2.1.2 | 28.00 | 364.23 | 392.23 | ERROR | |
| r-devel-linux-x86_64-fedora-gcc | 2.1.2 | 26.00 | 344.03 | 370.03 | ERROR | |
| r-devel-windows-x86_64 | 2.1.2 | 17.00 | 360.00 | 377.00 | OK | |
| r-patched-linux-x86_64 | 2.1.2 | 18.36 | 229.02 | 247.38 | OK | |
| r-release-linux-x86_64 | 2.1.2 | 16.45 | 228.32 | 244.77 | OK | |
| r-release-macos-arm64 | 2.1.2 | OK | ||||
| r-release-macos-x86_64 | 2.1.2 | 10.00 | 216.00 | 226.00 | OK | |
| r-release-windows-x86_64 | 2.1.2 | 17.00 | 251.00 | 268.00 | OK | |
| r-oldrel-macos-arm64 | 2.1.2 | OK | ||||
| r-oldrel-macos-x86_64 | 2.1.2 | 11.00 | 225.00 | 236.00 | OK | |
| r-oldrel-windows-x86_64 | 2.1.2 | 25.00 | 286.00 | 311.00 | ERROR |
Version: 2.1.2
Check: examples
Result: ERROR
Running examples in ‘reproducible-Ex.R’ failed
The error most likely occurred in:
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: Cache
> ### Title: Saves a wide variety function call outputs to disk and
> ### optionally RAM, for recovery later
> ### Aliases: Cache
>
> ### ** Examples
>
> data.table::setDTthreads(2)
> tmpDir <- file.path(tempdir())
> opts <- options(reproducible.cachePath = tmpDir)
>
> # Usage -- All below are equivalent; even where args are missing or provided,
> # Cache evaluates using default values, if these are specified in formals(FUN)
> a <- list()
> b <- list(fun = rnorm)
> bbb <- 1
> ee <- new.env(parent = emptyenv())
> ee$qq <- bbb
>
> a[[1]] <- Cache(rnorm(1)) # no evaluation prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 422bae4ed2f770cc.rds; fn: rnorm
> a[[2]] <- Cache(rnorm, 1) # no evaluation prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[3]] <- Cache(do.call, rnorm, list(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[4]] <- Cache(do.call(rnorm, list(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[5]] <- Cache(do.call(b$fun, list(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[6]] <- Cache(do.call, b$fun, list(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[7]] <- Cache(b$fun, 1)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[8]] <- Cache(b$fun(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: $, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous $ call
> a[[10]] <- Cache(quote(rnorm(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: quote, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous quote call
> a[[11]] <- Cache(stats::rnorm(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: stats::rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous stats::rnorm call
> a[[12]] <- Cache(stats::rnorm, 1)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: stats::rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous stats::rnorm call
> a[[13]] <- Cache(rnorm(1, 0, get("bbb", inherits = FALSE)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[14]] <- Cache(rnorm(1, 0, get("qq", inherits = FALSE, envir = ee)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[15]] <- Cache(rnorm(1, bbb - bbb, get("bbb", inherits = FALSE)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[16]] <- Cache(rnorm(sd = 1, 0, n = get("bbb", inherits = FALSE))) # change order
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[17]] <- Cache(rnorm(1, sd = get("ee", inherits = FALSE)$qq), mean = 0)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
>
> # with base pipe -- this is put in quotes ('') because R version 4.0 can't understand this
> # if you are using R >= 4.1 or R >= 4.2 if using the _ placeholder,
> # then you can just use pipe normally
> usingPipe1 <- "b$fun(1) |> Cache()" # base pipe
>
> # For long pipe, need to wrap sequence in { }, or else only last step is cached
> usingPipe2 <-
+ '{"bbb" |>
+ parse(text = _) |>
+ eval() |>
+ rnorm()} |>
+ Cache()'
> if (getRversion() >= "4.1") {
+ a[[9]] <- eval(parse(text = usingPipe1)) # recovers cached copy
+ }
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: $, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous $ call
> if (getRversion() >= "4.2") { # uses the _ placeholder; only available in R >= 4.2
+ a[[18]] <- eval(parse(text = usingPipe2)) # recovers cached copy
+ }
There is an `eval` call in a chain of calls for Cache;
eval is evaluated before Cache which may be undesired.
Perhaps use `do.call` if the evaluation should not occur prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
>
> length(unique(a)) == 1 # all same
[1] FALSE
>
> ### Pipe -- have to use { } or else only final function is Cached
> if (getRversion() >= "4.1") {
+ b1a <- 'sample(1e5, 1) |> rnorm() |> Cache()'
+ b1b <- 'sample(1e5, 1) |> rnorm() |> Cache()'
+ b2a <- '{sample(1e5, 1) |> rnorm()} |> Cache()'
+ b2b <- '{sample(1e5, 1) |> rnorm()} |> Cache()'
+ b1a <- eval(parse(text = b1a))
+ b1b <- eval(parse(text = b1b))
+ b2a <- eval(parse(text = b2a))
+ b2b <- eval(parse(text = b2b))
+ all.equal(b1a, b1b) # Not TRUE because the sample is run first
+ all.equal(b2a, b2b) # TRUE because of { }
+ }
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: d11bd9c8ba9018bd.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 402e48221b3093d3.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 65d6fc4cf6012274.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 65d6fc4cf6012274.rds) ...
Loaded! Cached result from previous rnorm call
[1] "Attributes: < Component “.Cache”: Component “newCache”: 1 element mismatch >"
>
> #########################
> # Advanced examples
> #########################
>
> # .cacheExtra -- add something to digest
> Cache(rnorm(1), .cacheExtra = "sfessee11") # adds something other than fn args
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 15a06cafd7e0d37e.rds; fn: rnorm
[1] -0.8980367
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:15a06cafd7e0d37e"
attr(,"call")
[1] ""
> Cache(rnorm(1), .cacheExtra = "nothing") # even though fn is same, the extra is different
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: b35d37e57ba86333.rds; fn: rnorm
[1] -1.154969
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:b35d37e57ba86333"
attr(,"call")
[1] ""
>
> # omitArgs -- remove something from digest (kind of the opposite of .cacheExtra)
> Cache(rnorm(2, sd = 1), omitArgs = "sd") # removes one or more args from cache digest
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: d1e9b95723b3afa0.rds; fn: rnorm
[1] 0.9472297 -1.0574249
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:d1e9b95723b3afa0"
attr(,"call")
[1] ""
> Cache(rnorm(2, sd = 2), omitArgs = "sd") # b/c sd is not used, this is same as previous
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, d1e9b95723b3afa0.rds) ...
Loaded! Cached result from previous rnorm call
[1] 0.9472297 -1.0574249
attr(,".Cache")
attr(,".Cache")$newCache
[1] FALSE
attr(,"tags")
[1] "cacheId:d1e9b95723b3afa0"
attr(,"call")
[1] ""
>
> # cacheId -- force the use of a digest -- can give undesired consequences
> Cache(rnorm(3), cacheId = "k323431232") # sets the cacheId for this call
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
cacheId is not same as calculated hash. Manually searching for
cacheId:k323431232
Saved! Cache file: k323431232.rds; fn: rnorm
[1] 1.1062937 -1.7782129 0.8976231
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:k323431232"
attr(,"call")
[1] ""
> Cache(runif(14), cacheId = "k323431232") # recovers same as above, i.e, rnorm(3)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
cacheId is not same as calculated hash. Manually searching for
cacheId:k323431232
Object to retrieve (fn: runif, k323431232.rds) ...
Loaded! Cached result from previous runif call
[1] 1.1062937 -1.7782129 0.8976231
attr(,".Cache")
attr(,".Cache")$newCache
[1] FALSE
attr(,"tags")
[1] "cacheId:k323431232"
attr(,"call")
[1] ""
>
> # Turn off Caching session-wide
> opts <- options(reproducible.useCache = FALSE)
> Cache(rnorm(3)) # doesn't cache
useCache is FALSE; skipping Cache on function rnorm (currently running nested
Cache level 2)
[1] 2.02496521 0.53554150 -0.01744317
> options(opts)
>
> # showSimilar can help with debugging why a Cache call isn't picking up a cached copy
> Cache(rnorm(4), showSimilar = TRUE) # shows that the argument `n` is different
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Cache of 'rnorm' differs from
the next closest cacheId(s) k323431232 of 'rnorm'
different n
Saved! Cache file: ad0ea27476c50b66.rds; fn: rnorm
[1] -0.7316185 -0.4654665 -1.9341541 0.4765088
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:ad0ea27476c50b66"
attr(,"call")
[1] ""
>
> ###############################################
> # devMode -- enables cache database to stay
> # small even when developing code
> ###############################################
> opt <- options("reproducible.useCache" = "devMode")
> clearCache(tmpDir, ask = FALSE)
> centralTendency <- function(x) {
+ mean(x)
+ }
> funnyData <- c(1, 1, 1, 1, 10)
> uniqueUserTags <- c("thisIsUnique", "reallyUnique")
> ranNumsB <- Cache(centralTendency, funnyData, cachePath = tmpDir,
+ userTags = uniqueUserTags) # sets new value to Cache
Saved! Cache file: 197064fee76dde59.rds; fn: centralTendency
> showCache(tmpDir) # 1 unique cacheId -- cacheId is 71cd24ec3b0d0cac
Cache size:
Total (including Rasters): 246 bytes
Selected objects (not including Rasters): 246 bytes
cacheId tagKey tagValue
<char> <char> <char>
1: 197064fee76dde59 thisIsUnique thisIsUnique
2: 197064fee76dde59 reallyUnique reallyUnique
3: 197064fee76dde59 function centralTendency
4: 197064fee76dde59 class numeric
5: 197064fee76dde59 object.size 984
6: 197064fee76dde59 accessed 2025-12-20 07:17:50.154781
7: 197064fee76dde59 inCloud FALSE
8: 197064fee76dde59 fromDisk FALSE
9: 197064fee76dde59 resultHash
10: 197064fee76dde59 elapsedTimeDigest 0.002939701 secs
11: 197064fee76dde59 elapsedTimeFirstRun 0.0003163815 secs
12: 197064fee76dde59 otherFunctions
13: 197064fee76dde59 preDigest x:e4aa8de28dc6c1bb
14: 197064fee76dde59 preDigest .FUN:3df5c81377ae4909
createdDate
<char>
1: 2025-12-20 07:17:50.156286
2: 2025-12-20 07:17:50.156286
3: 2025-12-20 07:17:50.156286
4: 2025-12-20 07:17:50.156286
5: 2025-12-20 07:17:50.156286
6: 2025-12-20 07:17:50.156286
7: 2025-12-20 07:17:50.156286
8: 2025-12-20 07:17:50.156286
9: 2025-12-20 07:17:50.156286
10: 2025-12-20 07:17:50.156286
11: 2025-12-20 07:17:50.156286
12: 2025-12-20 07:17:50.156286
13: 2025-12-20 07:17:50.156286
14: 2025-12-20 07:17:50.156286
>
> # During development, we often redefine function internals
> centralTendency <- function(x) {
+ median(x)
+ }
> # When we rerun, we don't want to keep the "old" cache because the function will
> # never again be defined that way. Here, because of userTags being the same,
> # it will replace the entry in the Cache, effetively overwriting it, even though
> # it has a different cacheId
> ranNumsD <- Cache(centralTendency, funnyData, cachePath = tmpDir, userTags = uniqueUserTags)
Error in `[.data.table`(isInRepoAlt, , `:=`(iden, identical(sum(get(.cacheTableTagColName("tag")) %in% :
attempt access index 4/4 in VECTOR_ELT
Calls: Cache -> devModeFn1 -> [ -> [.data.table
Execution halted
Flavor: r-devel-linux-x86_64-debian-clang
Version: 2.1.2
Check: tests
Result: ERROR
Running ‘test-all.R’ [89s/173s]
Running the tests in ‘tests/test-all.R’ failed.
Complete output:
> library(testthat)
>
> # NOTE: ALL OPTIONS ARE BEING SET IN tests/testthat/setup.R
>
> ## run all tests using different combinations of env vars
> if (nzchar(Sys.getenv("NOT_CRAN")) && as.logical(Sys.getenv("NOT_CRAN"))) {
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast") ## default
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false") ## default
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+ } else {
+ test_check("reproducible")
+ }
Loading required package: reproducible
Attaching package: 'data.table'
The following object is masked from 'package:base':
%notin%
[ FAIL 1 | WARN 0 | SKIP 90 | PASS 456 ]
══ Skipped tests (90) ══════════════════════════════════════════════════════════
• No Drive token (3): 'test-misc.R:137:3', 'test-prepInputs.R:1199:3',
'test-prepInputs.R:1219:3'
• On CRAN (82): 'test-cache.R:2:3', 'test-cache.R:748:3', 'test-cache.R:768:3',
'test-cache.R:961:3', 'test-cache.R:1515:3', 'test-cache.R:1561:3',
'test-cacheGeo.R:2:3', 'test-cloud.R:2:3', 'test-cloud.R:145:3',
'test-cloud.R:184:3', 'test-cloud.R:212:3', 'test-cloud.R:239:3',
'test-cluster.R:2:3', 'test-filesMissingExtension.R:2:3',
'test-filesMissingExtension.R:17:3', 'test-filesMissingExtension.R:32:3',
'test-filesMissingExtension.R:47:3', 'test-filesMissingExtension.R:62:3',
'test-gis.R:2:3', 'test-misc.R:62:3', 'test-postProcess.R:2:3',
'test-postProcess.R:232:3', 'test-postProcess.R:276:3',
'test-preProcessDoesntWork.R:2:3', 'test-preProcessDoesntWork.R:121:3',
'test-preProcessDoesntWork.R:135:3', 'test-preProcessDoesntWork.R:149:3',
'test-preProcessDoesntWork.R:179:3', 'test-preProcessWorks.R:2:3',
'test-preProcessWorks.R:13:3', 'test-preProcessWorks.R:24:3',
'test-preProcessWorks.R:35:3', 'test-preProcessWorks.R:57:3',
'test-preProcessWorks.R:82:3', 'test-preProcessWorks.R:96:3',
'test-preProcessWorks.R:113:3', 'test-preProcessWorks.R:128:3',
'test-preProcessWorks.R:143:3', 'test-preProcessWorks.R:165:3',
'test-preProcessWorks.R:179:3', 'test-preProcessWorks.R:202:3',
'test-preProcessWorks.R:233:3', 'test-preProcessWorks.R:257:3',
'test-preProcessWorks.R:270:3', 'test-preProcessWorks.R:286:3',
'test-preProcessWorks.R:302:3', 'test-preProcessWorks.R:315:3',
'test-preProcessWorks.R:328:3', 'test-preProcessWorks.R:348:3',
'test-preProcessWorks.R:361:3', 'test-preProcessWorks.R:374:3',
'test-preProcessWorks.R:391:3', 'test-preProcessWorks.R:409:3',
'test-preProcessWorks.R:438:3', 'test-preProcessWorks.R:459:3',
'test-preProcessWorks.R:487:3', 'test-preProcessWorks.R:543:3',
'test-preProcessWorks.R:569:3', 'test-preProcessWorks.R:672:3',
'test-prepInputs-large-files.R:2:3', 'test-prepInputs-large-files.R:35:3',
'test-prepInputs-large-files.R:61:3', 'test-prepInputs.R:2:3',
'test-prepInputs.R:180:3', 'test-prepInputs.R:327:3',
'test-prepInputs.R:1141:3', 'test-prepInputs.R:1337:3',
'test-prepInputs.R:1496:3', 'test-prepInputs.R:1571:3',
'test-prepInputs.R:1859:3', 'test-prepInputs.R:1883:3',
'test-prepInputsInNestedArchives.R:2:3',
'test-prepInputsInNestedArchives.R:13:3',
'test-prepInputsInNestedArchives.R:28:3',
'test-prepInputsInNestedArchives.R:39:3',
'test-prepInputsInNestedArchives.R:59:5',
'test-prepInputsInNestedArchives.R:82:5',
'test-prepInputsInNestedArchives.R:104:5',
'test-prepInputsInNestedArchives.R:141:5',
'test-prepInputsInNestedArchives.R:176:3',
'test-prepInputsInNestedArchives.R:208:3', 'test-symlinks.R:2:3'
• The Google Drive url is dead (1): 'test-postProcess.R:342:3'
• empty test (3): 'test-download.R:1:1', 'test-examples.R:1:1',
'test-preProcessWorks.R:467:1'
• test cloudCache inside Cache -- Not fully written test (1):
'test-multipleCacheRepo.R:38:3'
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-devMode.R:26:3'): test devMode ─────────────────────────────────
Error in ``[.data.table`(isInRepoAlt, , `:=`(iden, identical(sum(get(.cacheTableTagColName("tag")) %in% userTags), length(userTags))), by = eval(.cacheTableHashColName()))`: attempt access index 4/4 in VECTOR_ELT
Backtrace:
▆
1. └─reproducible::Cache(...) at test-devMode.R:26:3
2. └─reproducible:::devModeFn1(...)
3. ├─...[]
4. └─data.table:::`[.data.table`(...)
[ FAIL 1 | WARN 0 | SKIP 90 | PASS 456 ]
Error:
! Test failures.
Execution halted
Flavor: r-devel-linux-x86_64-debian-clang
Version: 2.1.2
Check: examples
Result: ERROR
Running examples in ‘reproducible-Ex.R’ failed
The error most likely occurred in:
> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
> ### Name: Cache
> ### Title: Saves a wide variety function call outputs to disk and
> ### optionally RAM, for recovery later
> ### Aliases: Cache
>
> ### ** Examples
>
> data.table::setDTthreads(2)
> tmpDir <- file.path(tempdir())
> opts <- options(reproducible.cachePath = tmpDir)
>
> # Usage -- All below are equivalent; even where args are missing or provided,
> # Cache evaluates using default values, if these are specified in formals(FUN)
> a <- list()
> b <- list(fun = rnorm)
> bbb <- 1
> ee <- new.env(parent = emptyenv())
> ee$qq <- bbb
>
> a[[1]] <- Cache(rnorm(1)) # no evaluation prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 422bae4ed2f770cc.rds; fn: rnorm
> a[[2]] <- Cache(rnorm, 1) # no evaluation prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[3]] <- Cache(do.call, rnorm, list(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[4]] <- Cache(do.call(rnorm, list(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[5]] <- Cache(do.call(b$fun, list(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[6]] <- Cache(do.call, b$fun, list(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[7]] <- Cache(b$fun, 1)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[8]] <- Cache(b$fun(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: $, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous $ call
> a[[10]] <- Cache(quote(rnorm(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: quote, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous quote call
> a[[11]] <- Cache(stats::rnorm(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: stats::rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous stats::rnorm call
> a[[12]] <- Cache(stats::rnorm, 1)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: stats::rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous stats::rnorm call
> a[[13]] <- Cache(rnorm(1, 0, get("bbb", inherits = FALSE)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[14]] <- Cache(rnorm(1, 0, get("qq", inherits = FALSE, envir = ee)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[15]] <- Cache(rnorm(1, bbb - bbb, get("bbb", inherits = FALSE)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[16]] <- Cache(rnorm(sd = 1, 0, n = get("bbb", inherits = FALSE))) # change order
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[17]] <- Cache(rnorm(1, sd = get("ee", inherits = FALSE)$qq), mean = 0)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
>
> # with base pipe -- this is put in quotes ('') because R version 4.0 can't understand this
> # if you are using R >= 4.1 or R >= 4.2 if using the _ placeholder,
> # then you can just use pipe normally
> usingPipe1 <- "b$fun(1) |> Cache()" # base pipe
>
> # For long pipe, need to wrap sequence in { }, or else only last step is cached
> usingPipe2 <-
+ '{"bbb" |>
+ parse(text = _) |>
+ eval() |>
+ rnorm()} |>
+ Cache()'
> if (getRversion() >= "4.1") {
+ a[[9]] <- eval(parse(text = usingPipe1)) # recovers cached copy
+ }
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: $, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous $ call
> if (getRversion() >= "4.2") { # uses the _ placeholder; only available in R >= 4.2
+ a[[18]] <- eval(parse(text = usingPipe2)) # recovers cached copy
+ }
There is an `eval` call in a chain of calls for Cache;
eval is evaluated before Cache which may be undesired.
Perhaps use `do.call` if the evaluation should not occur prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
>
> length(unique(a)) == 1 # all same
[1] FALSE
>
> ### Pipe -- have to use { } or else only final function is Cached
> if (getRversion() >= "4.1") {
+ b1a <- 'sample(1e5, 1) |> rnorm() |> Cache()'
+ b1b <- 'sample(1e5, 1) |> rnorm() |> Cache()'
+ b2a <- '{sample(1e5, 1) |> rnorm()} |> Cache()'
+ b2b <- '{sample(1e5, 1) |> rnorm()} |> Cache()'
+ b1a <- eval(parse(text = b1a))
+ b1b <- eval(parse(text = b1b))
+ b2a <- eval(parse(text = b2a))
+ b2b <- eval(parse(text = b2b))
+ all.equal(b1a, b1b) # Not TRUE because the sample is run first
+ all.equal(b2a, b2b) # TRUE because of { }
+ }
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: d11bd9c8ba9018bd.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 402e48221b3093d3.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 65d6fc4cf6012274.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 65d6fc4cf6012274.rds) ...
Loaded! Cached result from previous rnorm call
[1] "Attributes: < Component “.Cache”: Component “newCache”: 1 element mismatch >"
>
> #########################
> # Advanced examples
> #########################
>
> # .cacheExtra -- add something to digest
> Cache(rnorm(1), .cacheExtra = "sfessee11") # adds something other than fn args
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 15a06cafd7e0d37e.rds; fn: rnorm
[1] -0.8980367
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:15a06cafd7e0d37e"
attr(,"call")
[1] ""
> Cache(rnorm(1), .cacheExtra = "nothing") # even though fn is same, the extra is different
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: b35d37e57ba86333.rds; fn: rnorm
[1] -1.154969
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:b35d37e57ba86333"
attr(,"call")
[1] ""
>
> # omitArgs -- remove something from digest (kind of the opposite of .cacheExtra)
> Cache(rnorm(2, sd = 1), omitArgs = "sd") # removes one or more args from cache digest
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: d1e9b95723b3afa0.rds; fn: rnorm
[1] 0.9472297 -1.0574249
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:d1e9b95723b3afa0"
attr(,"call")
[1] ""
> Cache(rnorm(2, sd = 2), omitArgs = "sd") # b/c sd is not used, this is same as previous
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, d1e9b95723b3afa0.rds) ...
Loaded! Cached result from previous rnorm call
[1] 0.9472297 -1.0574249
attr(,".Cache")
attr(,".Cache")$newCache
[1] FALSE
attr(,"tags")
[1] "cacheId:d1e9b95723b3afa0"
attr(,"call")
[1] ""
>
> # cacheId -- force the use of a digest -- can give undesired consequences
> Cache(rnorm(3), cacheId = "k323431232") # sets the cacheId for this call
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
cacheId is not same as calculated hash. Manually searching for
cacheId:k323431232
Saved! Cache file: k323431232.rds; fn: rnorm
[1] 1.1062937 -1.7782129 0.8976231
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:k323431232"
attr(,"call")
[1] ""
> Cache(runif(14), cacheId = "k323431232") # recovers same as above, i.e, rnorm(3)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
cacheId is not same as calculated hash. Manually searching for
cacheId:k323431232
Object to retrieve (fn: runif, k323431232.rds) ...
Loaded! Cached result from previous runif call
[1] 1.1062937 -1.7782129 0.8976231
attr(,".Cache")
attr(,".Cache")$newCache
[1] FALSE
attr(,"tags")
[1] "cacheId:k323431232"
attr(,"call")
[1] ""
>
> # Turn off Caching session-wide
> opts <- options(reproducible.useCache = FALSE)
> Cache(rnorm(3)) # doesn't cache
useCache is FALSE; skipping Cache on function rnorm (currently running nested
Cache level 2)
[1] 2.02496521 0.53554150 -0.01744317
> options(opts)
>
> # showSimilar can help with debugging why a Cache call isn't picking up a cached copy
> Cache(rnorm(4), showSimilar = TRUE) # shows that the argument `n` is different
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Cache of 'rnorm' differs from
the next closest cacheId(s) k323431232 of 'rnorm'
different n
Saved! Cache file: ad0ea27476c50b66.rds; fn: rnorm
[1] -0.7316185 -0.4654665 -1.9341541 0.4765088
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:ad0ea27476c50b66"
attr(,"call")
[1] ""
>
> ###############################################
> # devMode -- enables cache database to stay
> # small even when developing code
> ###############################################
> opt <- options("reproducible.useCache" = "devMode")
> clearCache(tmpDir, ask = FALSE)
> centralTendency <- function(x) {
+ mean(x)
+ }
> funnyData <- c(1, 1, 1, 1, 10)
> uniqueUserTags <- c("thisIsUnique", "reallyUnique")
> ranNumsB <- Cache(centralTendency, funnyData, cachePath = tmpDir,
+ userTags = uniqueUserTags) # sets new value to Cache
Saved! Cache file: 197064fee76dde59.rds; fn: centralTendency
> showCache(tmpDir) # 1 unique cacheId -- cacheId is 71cd24ec3b0d0cac
Cache size:
Total (including Rasters): 246 bytes
Selected objects (not including Rasters): 246 bytes
cacheId tagKey tagValue
<char> <char> <char>
1: 197064fee76dde59 thisIsUnique thisIsUnique
2: 197064fee76dde59 reallyUnique reallyUnique
3: 197064fee76dde59 function centralTendency
4: 197064fee76dde59 class numeric
5: 197064fee76dde59 object.size 984
6: 197064fee76dde59 accessed 2025-12-19 18:11:49.923977
7: 197064fee76dde59 inCloud FALSE
8: 197064fee76dde59 fromDisk FALSE
9: 197064fee76dde59 resultHash
10: 197064fee76dde59 elapsedTimeDigest 0.002055407 secs
11: 197064fee76dde59 elapsedTimeFirstRun 0.0002291203 secs
12: 197064fee76dde59 otherFunctions
13: 197064fee76dde59 preDigest x:e4aa8de28dc6c1bb
14: 197064fee76dde59 preDigest .FUN:3df5c81377ae4909
createdDate
<char>
1: 2025-12-19 18:11:49.925043
2: 2025-12-19 18:11:49.925043
3: 2025-12-19 18:11:49.925043
4: 2025-12-19 18:11:49.925043
5: 2025-12-19 18:11:49.925043
6: 2025-12-19 18:11:49.925043
7: 2025-12-19 18:11:49.925043
8: 2025-12-19 18:11:49.925043
9: 2025-12-19 18:11:49.925043
10: 2025-12-19 18:11:49.925043
11: 2025-12-19 18:11:49.925043
12: 2025-12-19 18:11:49.925043
13: 2025-12-19 18:11:49.925043
14: 2025-12-19 18:11:49.925043
>
> # During development, we often redefine function internals
> centralTendency <- function(x) {
+ median(x)
+ }
> # When we rerun, we don't want to keep the "old" cache because the function will
> # never again be defined that way. Here, because of userTags being the same,
> # it will replace the entry in the Cache, effetively overwriting it, even though
> # it has a different cacheId
> ranNumsD <- Cache(centralTendency, funnyData, cachePath = tmpDir, userTags = uniqueUserTags)
Error in `[.data.table`(isInRepoAlt, , `:=`(iden, identical(sum(get(.cacheTableTagColName("tag")) %in% :
attempt access index 4/4 in VECTOR_ELT
Calls: Cache -> devModeFn1 -> [ -> [.data.table
Execution halted
Flavor: r-devel-linux-x86_64-debian-gcc
Version: 2.1.2
Check: tests
Result: ERROR
Running ‘test-all.R’ [62s/73s]
Running the tests in ‘tests/test-all.R’ failed.
Complete output:
> library(testthat)
>
> # NOTE: ALL OPTIONS ARE BEING SET IN tests/testthat/setup.R
>
> ## run all tests using different combinations of env vars
> if (nzchar(Sys.getenv("NOT_CRAN")) && as.logical(Sys.getenv("NOT_CRAN"))) {
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast") ## default
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false") ## default
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+ } else {
+ test_check("reproducible")
+ }
Loading required package: reproducible
Attaching package: 'data.table'
The following object is masked from 'package:base':
%notin%
[ FAIL 1 | WARN 0 | SKIP 90 | PASS 456 ]
══ Skipped tests (90) ══════════════════════════════════════════════════════════
• No Drive token (3): 'test-misc.R:137:3', 'test-prepInputs.R:1199:3',
'test-prepInputs.R:1219:3'
• On CRAN (82): 'test-cache.R:2:3', 'test-cache.R:748:3', 'test-cache.R:768:3',
'test-cache.R:961:3', 'test-cache.R:1515:3', 'test-cache.R:1561:3',
'test-cacheGeo.R:2:3', 'test-cloud.R:2:3', 'test-cloud.R:145:3',
'test-cloud.R:184:3', 'test-cloud.R:212:3', 'test-cloud.R:239:3',
'test-cluster.R:2:3', 'test-filesMissingExtension.R:2:3',
'test-filesMissingExtension.R:17:3', 'test-filesMissingExtension.R:32:3',
'test-filesMissingExtension.R:47:3', 'test-filesMissingExtension.R:62:3',
'test-gis.R:2:3', 'test-misc.R:62:3', 'test-postProcess.R:2:3',
'test-postProcess.R:232:3', 'test-postProcess.R:276:3',
'test-preProcessDoesntWork.R:2:3', 'test-preProcessDoesntWork.R:121:3',
'test-preProcessDoesntWork.R:135:3', 'test-preProcessDoesntWork.R:149:3',
'test-preProcessDoesntWork.R:179:3', 'test-preProcessWorks.R:2:3',
'test-preProcessWorks.R:13:3', 'test-preProcessWorks.R:24:3',
'test-preProcessWorks.R:35:3', 'test-preProcessWorks.R:57:3',
'test-preProcessWorks.R:82:3', 'test-preProcessWorks.R:96:3',
'test-preProcessWorks.R:113:3', 'test-preProcessWorks.R:128:3',
'test-preProcessWorks.R:143:3', 'test-preProcessWorks.R:165:3',
'test-preProcessWorks.R:179:3', 'test-preProcessWorks.R:202:3',
'test-preProcessWorks.R:233:3', 'test-preProcessWorks.R:257:3',
'test-preProcessWorks.R:270:3', 'test-preProcessWorks.R:286:3',
'test-preProcessWorks.R:302:3', 'test-preProcessWorks.R:315:3',
'test-preProcessWorks.R:328:3', 'test-preProcessWorks.R:348:3',
'test-preProcessWorks.R:361:3', 'test-preProcessWorks.R:374:3',
'test-preProcessWorks.R:391:3', 'test-preProcessWorks.R:409:3',
'test-preProcessWorks.R:438:3', 'test-preProcessWorks.R:459:3',
'test-preProcessWorks.R:487:3', 'test-preProcessWorks.R:543:3',
'test-preProcessWorks.R:569:3', 'test-preProcessWorks.R:672:3',
'test-prepInputs-large-files.R:2:3', 'test-prepInputs-large-files.R:35:3',
'test-prepInputs-large-files.R:61:3', 'test-prepInputs.R:2:3',
'test-prepInputs.R:180:3', 'test-prepInputs.R:327:3',
'test-prepInputs.R:1141:3', 'test-prepInputs.R:1337:3',
'test-prepInputs.R:1496:3', 'test-prepInputs.R:1571:3',
'test-prepInputs.R:1859:3', 'test-prepInputs.R:1883:3',
'test-prepInputsInNestedArchives.R:2:3',
'test-prepInputsInNestedArchives.R:13:3',
'test-prepInputsInNestedArchives.R:28:3',
'test-prepInputsInNestedArchives.R:39:3',
'test-prepInputsInNestedArchives.R:59:5',
'test-prepInputsInNestedArchives.R:82:5',
'test-prepInputsInNestedArchives.R:104:5',
'test-prepInputsInNestedArchives.R:141:5',
'test-prepInputsInNestedArchives.R:176:3',
'test-prepInputsInNestedArchives.R:208:3', 'test-symlinks.R:2:3'
• The Google Drive url is dead (1): 'test-postProcess.R:342:3'
• empty test (3): 'test-download.R:1:1', 'test-examples.R:1:1',
'test-preProcessWorks.R:467:1'
• test cloudCache inside Cache -- Not fully written test (1):
'test-multipleCacheRepo.R:38:3'
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-devMode.R:26:3'): test devMode ─────────────────────────────────
Error in ``[.data.table`(isInRepoAlt, , `:=`(iden, identical(sum(get(.cacheTableTagColName("tag")) %in% userTags), length(userTags))), by = eval(.cacheTableHashColName()))`: attempt access index 4/4 in VECTOR_ELT
Backtrace:
▆
1. └─reproducible::Cache(...) at test-devMode.R:26:3
2. └─reproducible:::devModeFn1(...)
3. ├─...[]
4. └─data.table:::`[.data.table`(...)
[ FAIL 1 | WARN 0 | SKIP 90 | PASS 456 ]
Error:
! Test failures.
Execution halted
Flavor: r-devel-linux-x86_64-debian-gcc
Version: 2.1.2
Check: examples
Result: ERROR
Running examples in ‘reproducible-Ex.R’ failed
The error most likely occurred in:
> ### Name: Cache
> ### Title: Saves a wide variety function call outputs to disk and
> ### optionally RAM, for recovery later
> ### Aliases: Cache
>
> ### ** Examples
>
> data.table::setDTthreads(2)
> tmpDir <- file.path(tempdir())
> opts <- options(reproducible.cachePath = tmpDir)
>
> # Usage -- All below are equivalent; even where args are missing or provided,
> # Cache evaluates using default values, if these are specified in formals(FUN)
> a <- list()
> b <- list(fun = rnorm)
> bbb <- 1
> ee <- new.env(parent = emptyenv())
> ee$qq <- bbb
>
> a[[1]] <- Cache(rnorm(1)) # no evaluation prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 422bae4ed2f770cc.rds; fn: rnorm
> a[[2]] <- Cache(rnorm, 1) # no evaluation prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[3]] <- Cache(do.call, rnorm, list(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[4]] <- Cache(do.call(rnorm, list(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[5]] <- Cache(do.call(b$fun, list(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[6]] <- Cache(do.call, b$fun, list(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[7]] <- Cache(b$fun, 1)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[8]] <- Cache(b$fun(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: $, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous $ call
> a[[10]] <- Cache(quote(rnorm(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: quote, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous quote call
> a[[11]] <- Cache(stats::rnorm(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: stats::rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous stats::rnorm call
> a[[12]] <- Cache(stats::rnorm, 1)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: stats::rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous stats::rnorm call
> a[[13]] <- Cache(rnorm(1, 0, get("bbb", inherits = FALSE)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[14]] <- Cache(rnorm(1, 0, get("qq", inherits = FALSE, envir = ee)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[15]] <- Cache(rnorm(1, bbb - bbb, get("bbb", inherits = FALSE)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[16]] <- Cache(rnorm(sd = 1, 0, n = get("bbb", inherits = FALSE))) # change order
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[17]] <- Cache(rnorm(1, sd = get("ee", inherits = FALSE)$qq), mean = 0)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
>
> # with base pipe -- this is put in quotes ('') because R version 4.0 can't understand this
> # if you are using R >= 4.1 or R >= 4.2 if using the _ placeholder,
> # then you can just use pipe normally
> usingPipe1 <- "b$fun(1) |> Cache()" # base pipe
>
> # For long pipe, need to wrap sequence in { }, or else only last step is cached
> usingPipe2 <-
+ '{"bbb" |>
+ parse(text = _) |>
+ eval() |>
+ rnorm()} |>
+ Cache()'
> if (getRversion() >= "4.1") {
+ a[[9]] <- eval(parse(text = usingPipe1)) # recovers cached copy
+ }
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: $, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous $ call
> if (getRversion() >= "4.2") { # uses the _ placeholder; only available in R >= 4.2
+ a[[18]] <- eval(parse(text = usingPipe2)) # recovers cached copy
+ }
There is an `eval` call in a chain of calls for Cache;
eval is evaluated before Cache which may be undesired.
Perhaps use `do.call` if the evaluation should not occur prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
>
> length(unique(a)) == 1 # all same
[1] FALSE
>
> ### Pipe -- have to use { } or else only final function is Cached
> if (getRversion() >= "4.1") {
+ b1a <- 'sample(1e5, 1) |> rnorm() |> Cache()'
+ b1b <- 'sample(1e5, 1) |> rnorm() |> Cache()'
+ b2a <- '{sample(1e5, 1) |> rnorm()} |> Cache()'
+ b2b <- '{sample(1e5, 1) |> rnorm()} |> Cache()'
+ b1a <- eval(parse(text = b1a))
+ b1b <- eval(parse(text = b1b))
+ b2a <- eval(parse(text = b2a))
+ b2b <- eval(parse(text = b2b))
+ all.equal(b1a, b1b) # Not TRUE because the sample is run first
+ all.equal(b2a, b2b) # TRUE because of { }
+ }
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: d11bd9c8ba9018bd.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 402e48221b3093d3.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 65d6fc4cf6012274.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 65d6fc4cf6012274.rds) ...
Loaded! Cached result from previous rnorm call
[1] "Attributes: < Component “.Cache”: Component “newCache”: 1 element mismatch >"
>
> #########################
> # Advanced examples
> #########################
>
> # .cacheExtra -- add something to digest
> Cache(rnorm(1), .cacheExtra = "sfessee11") # adds something other than fn args
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 15a06cafd7e0d37e.rds; fn: rnorm
[1] -0.8980367
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:15a06cafd7e0d37e"
attr(,"call")
[1] ""
> Cache(rnorm(1), .cacheExtra = "nothing") # even though fn is same, the extra is different
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: b35d37e57ba86333.rds; fn: rnorm
[1] -1.154969
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:b35d37e57ba86333"
attr(,"call")
[1] ""
>
> # omitArgs -- remove something from digest (kind of the opposite of .cacheExtra)
> Cache(rnorm(2, sd = 1), omitArgs = "sd") # removes one or more args from cache digest
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: d1e9b95723b3afa0.rds; fn: rnorm
[1] 0.9472297 -1.0574249
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:d1e9b95723b3afa0"
attr(,"call")
[1] ""
> Cache(rnorm(2, sd = 2), omitArgs = "sd") # b/c sd is not used, this is same as previous
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, d1e9b95723b3afa0.rds) ...
Loaded! Cached result from previous rnorm call
[1] 0.9472297 -1.0574249
attr(,".Cache")
attr(,".Cache")$newCache
[1] FALSE
attr(,"tags")
[1] "cacheId:d1e9b95723b3afa0"
attr(,"call")
[1] ""
>
> # cacheId -- force the use of a digest -- can give undesired consequences
> Cache(rnorm(3), cacheId = "k323431232") # sets the cacheId for this call
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
cacheId is not same as calculated hash. Manually searching for
cacheId:k323431232
Saved! Cache file: k323431232.rds; fn: rnorm
[1] 1.1062937 -1.7782129 0.8976231
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:k323431232"
attr(,"call")
[1] ""
> Cache(runif(14), cacheId = "k323431232") # recovers same as above, i.e, rnorm(3)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
cacheId is not same as calculated hash. Manually searching for
cacheId:k323431232
Object to retrieve (fn: runif, k323431232.rds) ...
Loaded! Cached result from previous runif call
[1] 1.1062937 -1.7782129 0.8976231
attr(,".Cache")
attr(,".Cache")$newCache
[1] FALSE
attr(,"tags")
[1] "cacheId:k323431232"
attr(,"call")
[1] ""
>
> # Turn off Caching session-wide
> opts <- options(reproducible.useCache = FALSE)
> Cache(rnorm(3)) # doesn't cache
useCache is FALSE; skipping Cache on function rnorm (currently running nested
Cache level 2)
[1] 2.02496521 0.53554150 -0.01744317
> options(opts)
>
> # showSimilar can help with debugging why a Cache call isn't picking up a cached copy
> Cache(rnorm(4), showSimilar = TRUE) # shows that the argument `n` is different
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Cache of 'rnorm' differs from
the next closest cacheId(s) k323431232 of 'rnorm'
different n
Saved! Cache file: ad0ea27476c50b66.rds; fn: rnorm
[1] -0.7316185 -0.4654665 -1.9341541 0.4765088
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:ad0ea27476c50b66"
attr(,"call")
[1] ""
>
> ###############################################
> # devMode -- enables cache database to stay
> # small even when developing code
> ###############################################
> opt <- options("reproducible.useCache" = "devMode")
> clearCache(tmpDir, ask = FALSE)
> centralTendency <- function(x) {
+ mean(x)
+ }
> funnyData <- c(1, 1, 1, 1, 10)
> uniqueUserTags <- c("thisIsUnique", "reallyUnique")
> ranNumsB <- Cache(centralTendency, funnyData, cachePath = tmpDir,
+ userTags = uniqueUserTags) # sets new value to Cache
Saved! Cache file: 197064fee76dde59.rds; fn: centralTendency
> showCache(tmpDir) # 1 unique cacheId -- cacheId is 71cd24ec3b0d0cac
Cache size:
Total (including Rasters): 246 bytes
Selected objects (not including Rasters): 246 bytes
cacheId tagKey tagValue
<char> <char> <char>
1: 197064fee76dde59 thisIsUnique thisIsUnique
2: 197064fee76dde59 reallyUnique reallyUnique
3: 197064fee76dde59 function centralTendency
4: 197064fee76dde59 class numeric
5: 197064fee76dde59 object.size 984
6: 197064fee76dde59 accessed 2025-12-19 18:18:32.668639
7: 197064fee76dde59 inCloud FALSE
8: 197064fee76dde59 fromDisk FALSE
9: 197064fee76dde59 resultHash
10: 197064fee76dde59 elapsedTimeDigest 0.02628446 secs
11: 197064fee76dde59 elapsedTimeFirstRun 0.0004422665 secs
12: 197064fee76dde59 otherFunctions
13: 197064fee76dde59 preDigest x:e4aa8de28dc6c1bb
14: 197064fee76dde59 preDigest .FUN:3df5c81377ae4909
createdDate
<char>
1: 2025-12-19 18:18:32.671305
2: 2025-12-19 18:18:32.671305
3: 2025-12-19 18:18:32.671305
4: 2025-12-19 18:18:32.671305
5: 2025-12-19 18:18:32.671305
6: 2025-12-19 18:18:32.671305
7: 2025-12-19 18:18:32.671305
8: 2025-12-19 18:18:32.671305
9: 2025-12-19 18:18:32.671305
10: 2025-12-19 18:18:32.671305
11: 2025-12-19 18:18:32.671305
12: 2025-12-19 18:18:32.671305
13: 2025-12-19 18:18:32.671305
14: 2025-12-19 18:18:32.671305
>
> # During development, we often redefine function internals
> centralTendency <- function(x) {
+ median(x)
+ }
> # When we rerun, we don't want to keep the "old" cache because the function will
> # never again be defined that way. Here, because of userTags being the same,
> # it will replace the entry in the Cache, effetively overwriting it, even though
> # it has a different cacheId
> ranNumsD <- Cache(centralTendency, funnyData, cachePath = tmpDir, userTags = uniqueUserTags)
Error in `[.data.table`(isInRepoAlt, , `:=`(iden, identical(sum(get(.cacheTableTagColName("tag")) %in% :
attempt access index 4/4 in VECTOR_ELT
Calls: Cache -> devModeFn1 -> [ -> [.data.table
Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 2.1.2
Check: tests
Result: ERROR
Running ‘test-all.R’ [138s/263s]
Running the tests in ‘tests/test-all.R’ failed.
Complete output:
> library(testthat)
>
> # NOTE: ALL OPTIONS ARE BEING SET IN tests/testthat/setup.R
>
> ## run all tests using different combinations of env vars
> if (nzchar(Sys.getenv("NOT_CRAN")) && as.logical(Sys.getenv("NOT_CRAN"))) {
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast") ## default
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false") ## default
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+ } else {
+ test_check("reproducible")
+ }
Loading required package: reproducible
Attaching package: 'data.table'
The following object is masked from 'package:base':
%notin%
[ FAIL 1 | WARN 0 | SKIP 90 | PASS 456 ]
══ Skipped tests (90) ══════════════════════════════════════════════════════════
• No Drive token (3): 'test-misc.R:137:3', 'test-prepInputs.R:1199:3',
'test-prepInputs.R:1219:3'
• On CRAN (82): 'test-cache.R:2:3', 'test-cache.R:748:3', 'test-cache.R:768:3',
'test-cache.R:961:3', 'test-cache.R:1515:3', 'test-cache.R:1561:3',
'test-cacheGeo.R:2:3', 'test-cloud.R:2:3', 'test-cloud.R:145:3',
'test-cloud.R:184:3', 'test-cloud.R:212:3', 'test-cloud.R:239:3',
'test-cluster.R:2:3', 'test-filesMissingExtension.R:2:3',
'test-filesMissingExtension.R:17:3', 'test-filesMissingExtension.R:32:3',
'test-filesMissingExtension.R:47:3', 'test-filesMissingExtension.R:62:3',
'test-gis.R:2:3', 'test-misc.R:62:3', 'test-postProcess.R:2:3',
'test-postProcess.R:232:3', 'test-postProcess.R:276:3',
'test-preProcessDoesntWork.R:2:3', 'test-preProcessDoesntWork.R:121:3',
'test-preProcessDoesntWork.R:135:3', 'test-preProcessDoesntWork.R:149:3',
'test-preProcessDoesntWork.R:179:3', 'test-preProcessWorks.R:2:3',
'test-preProcessWorks.R:13:3', 'test-preProcessWorks.R:24:3',
'test-preProcessWorks.R:35:3', 'test-preProcessWorks.R:57:3',
'test-preProcessWorks.R:82:3', 'test-preProcessWorks.R:96:3',
'test-preProcessWorks.R:113:3', 'test-preProcessWorks.R:128:3',
'test-preProcessWorks.R:143:3', 'test-preProcessWorks.R:165:3',
'test-preProcessWorks.R:179:3', 'test-preProcessWorks.R:202:3',
'test-preProcessWorks.R:233:3', 'test-preProcessWorks.R:257:3',
'test-preProcessWorks.R:270:3', 'test-preProcessWorks.R:286:3',
'test-preProcessWorks.R:302:3', 'test-preProcessWorks.R:315:3',
'test-preProcessWorks.R:328:3', 'test-preProcessWorks.R:348:3',
'test-preProcessWorks.R:361:3', 'test-preProcessWorks.R:374:3',
'test-preProcessWorks.R:391:3', 'test-preProcessWorks.R:409:3',
'test-preProcessWorks.R:438:3', 'test-preProcessWorks.R:459:3',
'test-preProcessWorks.R:487:3', 'test-preProcessWorks.R:543:3',
'test-preProcessWorks.R:569:3', 'test-preProcessWorks.R:672:3',
'test-prepInputs-large-files.R:2:3', 'test-prepInputs-large-files.R:35:3',
'test-prepInputs-large-files.R:61:3', 'test-prepInputs.R:2:3',
'test-prepInputs.R:180:3', 'test-prepInputs.R:327:3',
'test-prepInputs.R:1141:3', 'test-prepInputs.R:1337:3',
'test-prepInputs.R:1496:3', 'test-prepInputs.R:1571:3',
'test-prepInputs.R:1859:3', 'test-prepInputs.R:1883:3',
'test-prepInputsInNestedArchives.R:2:3',
'test-prepInputsInNestedArchives.R:13:3',
'test-prepInputsInNestedArchives.R:28:3',
'test-prepInputsInNestedArchives.R:39:3',
'test-prepInputsInNestedArchives.R:59:5',
'test-prepInputsInNestedArchives.R:82:5',
'test-prepInputsInNestedArchives.R:104:5',
'test-prepInputsInNestedArchives.R:141:5',
'test-prepInputsInNestedArchives.R:176:3',
'test-prepInputsInNestedArchives.R:208:3', 'test-symlinks.R:2:3'
• The Google Drive url is dead (1): 'test-postProcess.R:342:3'
• empty test (3): 'test-download.R:1:1', 'test-examples.R:1:1',
'test-preProcessWorks.R:467:1'
• test cloudCache inside Cache -- Not fully written test (1):
'test-multipleCacheRepo.R:38:3'
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-devMode.R:26:3'): test devMode ─────────────────────────────────
Error in ``[.data.table`(isInRepoAlt, , `:=`(iden, identical(sum(get(.cacheTableTagColName("tag")) %in% userTags), length(userTags))), by = eval(.cacheTableHashColName()))`: attempt access index 4/4 in VECTOR_ELT
Backtrace:
▆
1. └─reproducible::Cache(...) at test-devMode.R:26:3
2. └─reproducible:::devModeFn1(...)
3. ├─...[]
4. └─data.table:::`[.data.table`(...)
[ FAIL 1 | WARN 0 | SKIP 90 | PASS 456 ]
Error:
! Test failures.
Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 2.1.2
Check: examples
Result: ERROR
Running examples in ‘reproducible-Ex.R’ failed
The error most likely occurred in:
> ### Name: Cache
> ### Title: Saves a wide variety function call outputs to disk and
> ### optionally RAM, for recovery later
> ### Aliases: Cache
>
> ### ** Examples
>
> data.table::setDTthreads(2)
> tmpDir <- file.path(tempdir())
> opts <- options(reproducible.cachePath = tmpDir)
>
> # Usage -- All below are equivalent; even where args are missing or provided,
> # Cache evaluates using default values, if these are specified in formals(FUN)
> a <- list()
> b <- list(fun = rnorm)
> bbb <- 1
> ee <- new.env(parent = emptyenv())
> ee$qq <- bbb
>
> a[[1]] <- Cache(rnorm(1)) # no evaluation prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 422bae4ed2f770cc.rds; fn: rnorm
> a[[2]] <- Cache(rnorm, 1) # no evaluation prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[3]] <- Cache(do.call, rnorm, list(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[4]] <- Cache(do.call(rnorm, list(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[5]] <- Cache(do.call(b$fun, list(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[6]] <- Cache(do.call, b$fun, list(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[7]] <- Cache(b$fun, 1)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: b$fun, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous b$fun call
> a[[8]] <- Cache(b$fun(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: $, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous $ call
> a[[10]] <- Cache(quote(rnorm(1)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: quote, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous quote call
> a[[11]] <- Cache(stats::rnorm(1))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: stats::rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous stats::rnorm call
> a[[12]] <- Cache(stats::rnorm, 1)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: stats::rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous stats::rnorm call
> a[[13]] <- Cache(rnorm(1, 0, get("bbb", inherits = FALSE)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[14]] <- Cache(rnorm(1, 0, get("qq", inherits = FALSE, envir = ee)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[15]] <- Cache(rnorm(1, bbb - bbb, get("bbb", inherits = FALSE)))
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[16]] <- Cache(rnorm(sd = 1, 0, n = get("bbb", inherits = FALSE))) # change order
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
> a[[17]] <- Cache(rnorm(1, sd = get("ee", inherits = FALSE)$qq), mean = 0)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
>
> # with base pipe -- this is put in quotes ('') because R version 4.0 can't understand this
> # if you are using R >= 4.1 or R >= 4.2 if using the _ placeholder,
> # then you can just use pipe normally
> usingPipe1 <- "b$fun(1) |> Cache()" # base pipe
>
> # For long pipe, need to wrap sequence in { }, or else only last step is cached
> usingPipe2 <-
+ '{"bbb" |>
+ parse(text = _) |>
+ eval() |>
+ rnorm()} |>
+ Cache()'
> if (getRversion() >= "4.1") {
+ a[[9]] <- eval(parse(text = usingPipe1)) # recovers cached copy
+ }
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: $, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous $ call
> if (getRversion() >= "4.2") { # uses the _ placeholder; only available in R >= 4.2
+ a[[18]] <- eval(parse(text = usingPipe2)) # recovers cached copy
+ }
There is an `eval` call in a chain of calls for Cache;
eval is evaluated before Cache which may be undesired.
Perhaps use `do.call` if the evaluation should not occur prior to Cache
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 422bae4ed2f770cc.rds) ...
Loaded! Cached result from previous rnorm call
>
> length(unique(a)) == 1 # all same
[1] FALSE
>
> ### Pipe -- have to use { } or else only final function is Cached
> if (getRversion() >= "4.1") {
+ b1a <- 'sample(1e5, 1) |> rnorm() |> Cache()'
+ b1b <- 'sample(1e5, 1) |> rnorm() |> Cache()'
+ b2a <- '{sample(1e5, 1) |> rnorm()} |> Cache()'
+ b2b <- '{sample(1e5, 1) |> rnorm()} |> Cache()'
+ b1a <- eval(parse(text = b1a))
+ b1b <- eval(parse(text = b1b))
+ b2a <- eval(parse(text = b2a))
+ b2b <- eval(parse(text = b2b))
+ all.equal(b1a, b1b) # Not TRUE because the sample is run first
+ all.equal(b2a, b2b) # TRUE because of { }
+ }
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: d11bd9c8ba9018bd.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 402e48221b3093d3.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 65d6fc4cf6012274.rds; fn: rnorm
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, 65d6fc4cf6012274.rds) ...
Loaded! Cached result from previous rnorm call
[1] "Attributes: < Component “.Cache”: Component “newCache”: 1 element mismatch >"
>
> #########################
> # Advanced examples
> #########################
>
> # .cacheExtra -- add something to digest
> Cache(rnorm(1), .cacheExtra = "sfessee11") # adds something other than fn args
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: 15a06cafd7e0d37e.rds; fn: rnorm
[1] -0.8980367
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:15a06cafd7e0d37e"
attr(,"call")
[1] ""
> Cache(rnorm(1), .cacheExtra = "nothing") # even though fn is same, the extra is different
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: b35d37e57ba86333.rds; fn: rnorm
[1] -1.154969
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:b35d37e57ba86333"
attr(,"call")
[1] ""
>
> # omitArgs -- remove something from digest (kind of the opposite of .cacheExtra)
> Cache(rnorm(2, sd = 1), omitArgs = "sd") # removes one or more args from cache digest
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Saved! Cache file: d1e9b95723b3afa0.rds; fn: rnorm
[1] 0.9472297 -1.0574249
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:d1e9b95723b3afa0"
attr(,"call")
[1] ""
> Cache(rnorm(2, sd = 2), omitArgs = "sd") # b/c sd is not used, this is same as previous
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Object to retrieve (fn: rnorm, d1e9b95723b3afa0.rds) ...
Loaded! Cached result from previous rnorm call
[1] 0.9472297 -1.0574249
attr(,".Cache")
attr(,".Cache")$newCache
[1] FALSE
attr(,"tags")
[1] "cacheId:d1e9b95723b3afa0"
attr(,"call")
[1] ""
>
> # cacheId -- force the use of a digest -- can give undesired consequences
> Cache(rnorm(3), cacheId = "k323431232") # sets the cacheId for this call
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
cacheId is not same as calculated hash. Manually searching for
cacheId:k323431232
Saved! Cache file: k323431232.rds; fn: rnorm
[1] 1.1062937 -1.7782129 0.8976231
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:k323431232"
attr(,"call")
[1] ""
> Cache(runif(14), cacheId = "k323431232") # recovers same as above, i.e, rnorm(3)
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
cacheId is not same as calculated hash. Manually searching for
cacheId:k323431232
Object to retrieve (fn: runif, k323431232.rds) ...
Loaded! Cached result from previous runif call
[1] 1.1062937 -1.7782129 0.8976231
attr(,".Cache")
attr(,".Cache")$newCache
[1] FALSE
attr(,"tags")
[1] "cacheId:k323431232"
attr(,"call")
[1] ""
>
> # Turn off Caching session-wide
> opts <- options(reproducible.useCache = FALSE)
> Cache(rnorm(3)) # doesn't cache
useCache is FALSE; skipping Cache on function rnorm (currently running nested
Cache level 2)
[1] 2.02496521 0.53554150 -0.01744317
> options(opts)
>
> # showSimilar can help with debugging why a Cache call isn't picking up a cached copy
> Cache(rnorm(4), showSimilar = TRUE) # shows that the argument `n` is different
No cachePath supplied and getOption('reproducible.cachePath') is inside a temporary directory;
this will not persist across R sessions.
Cache of 'rnorm' differs from
the next closest cacheId(s) k323431232 of 'rnorm'
different n
Saved! Cache file: ad0ea27476c50b66.rds; fn: rnorm
[1] -0.7316185 -0.4654665 -1.9341541 0.4765088
attr(,".Cache")
attr(,".Cache")$newCache
[1] TRUE
attr(,"tags")
[1] "cacheId:ad0ea27476c50b66"
attr(,"call")
[1] ""
>
> ###############################################
> # devMode -- enables cache database to stay
> # small even when developing code
> ###############################################
> opt <- options("reproducible.useCache" = "devMode")
> clearCache(tmpDir, ask = FALSE)
> centralTendency <- function(x) {
+ mean(x)
+ }
> funnyData <- c(1, 1, 1, 1, 10)
> uniqueUserTags <- c("thisIsUnique", "reallyUnique")
> ranNumsB <- Cache(centralTendency, funnyData, cachePath = tmpDir,
+ userTags = uniqueUserTags) # sets new value to Cache
Saved! Cache file: 197064fee76dde59.rds; fn: centralTendency
> showCache(tmpDir) # 1 unique cacheId -- cacheId is 71cd24ec3b0d0cac
Cache size:
Total (including Rasters): 246 bytes
Selected objects (not including Rasters): 246 bytes
cacheId tagKey tagValue
<char> <char> <char>
1: 197064fee76dde59 thisIsUnique thisIsUnique
2: 197064fee76dde59 reallyUnique reallyUnique
3: 197064fee76dde59 function centralTendency
4: 197064fee76dde59 class numeric
5: 197064fee76dde59 object.size 984
6: 197064fee76dde59 accessed 2025-12-19 12:47:51.200848
7: 197064fee76dde59 inCloud FALSE
8: 197064fee76dde59 fromDisk FALSE
9: 197064fee76dde59 resultHash
10: 197064fee76dde59 elapsedTimeDigest 0.01083374 secs
11: 197064fee76dde59 elapsedTimeFirstRun 0.0004165173 secs
12: 197064fee76dde59 otherFunctions
13: 197064fee76dde59 preDigest x:e4aa8de28dc6c1bb
14: 197064fee76dde59 preDigest .FUN:3df5c81377ae4909
createdDate
<char>
1: 2025-12-19 12:47:51.203353
2: 2025-12-19 12:47:51.203353
3: 2025-12-19 12:47:51.203353
4: 2025-12-19 12:47:51.203353
5: 2025-12-19 12:47:51.203353
6: 2025-12-19 12:47:51.203353
7: 2025-12-19 12:47:51.203353
8: 2025-12-19 12:47:51.203353
9: 2025-12-19 12:47:51.203353
10: 2025-12-19 12:47:51.203353
11: 2025-12-19 12:47:51.203353
12: 2025-12-19 12:47:51.203353
13: 2025-12-19 12:47:51.203353
14: 2025-12-19 12:47:51.203353
>
> # During development, we often redefine function internals
> centralTendency <- function(x) {
+ median(x)
+ }
> # When we rerun, we don't want to keep the "old" cache because the function will
> # never again be defined that way. Here, because of userTags being the same,
> # it will replace the entry in the Cache, effetively overwriting it, even though
> # it has a different cacheId
> ranNumsD <- Cache(centralTendency, funnyData, cachePath = tmpDir, userTags = uniqueUserTags)
Error in `[.data.table`(isInRepoAlt, , `:=`(iden, identical(sum(get(.cacheTableTagColName("tag")) %in% :
attempt access index 4/4 in VECTOR_ELT
Calls: Cache -> devModeFn1 -> [ -> [.data.table
Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc
Version: 2.1.2
Check: tests
Result: ERROR
Running ‘test-all.R’ [124s/147s]
Running the tests in ‘tests/test-all.R’ failed.
Complete output:
> library(testthat)
>
> # NOTE: ALL OPTIONS ARE BEING SET IN tests/testthat/setup.R
>
> ## run all tests using different combinations of env vars
> if (nzchar(Sys.getenv("NOT_CRAN")) && as.logical(Sys.getenv("NOT_CRAN"))) {
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast") ## default
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false") ## default
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+ } else {
+ test_check("reproducible")
+ }
Loading required package: reproducible
Attaching package: 'data.table'
The following object is masked from 'package:base':
%notin%
[ FAIL 1 | WARN 0 | SKIP 90 | PASS 456 ]
══ Skipped tests (90) ══════════════════════════════════════════════════════════
• No Drive token (3): 'test-misc.R:137:3', 'test-prepInputs.R:1199:3',
'test-prepInputs.R:1219:3'
• On CRAN (82): 'test-cache.R:2:3', 'test-cache.R:748:3', 'test-cache.R:768:3',
'test-cache.R:961:3', 'test-cache.R:1515:3', 'test-cache.R:1561:3',
'test-cacheGeo.R:2:3', 'test-cloud.R:2:3', 'test-cloud.R:145:3',
'test-cloud.R:184:3', 'test-cloud.R:212:3', 'test-cloud.R:239:3',
'test-cluster.R:2:3', 'test-filesMissingExtension.R:2:3',
'test-filesMissingExtension.R:17:3', 'test-filesMissingExtension.R:32:3',
'test-filesMissingExtension.R:47:3', 'test-filesMissingExtension.R:62:3',
'test-gis.R:2:3', 'test-misc.R:62:3', 'test-postProcess.R:2:3',
'test-postProcess.R:232:3', 'test-postProcess.R:276:3',
'test-preProcessDoesntWork.R:2:3', 'test-preProcessDoesntWork.R:121:3',
'test-preProcessDoesntWork.R:135:3', 'test-preProcessDoesntWork.R:149:3',
'test-preProcessDoesntWork.R:179:3', 'test-preProcessWorks.R:2:3',
'test-preProcessWorks.R:13:3', 'test-preProcessWorks.R:24:3',
'test-preProcessWorks.R:35:3', 'test-preProcessWorks.R:57:3',
'test-preProcessWorks.R:82:3', 'test-preProcessWorks.R:96:3',
'test-preProcessWorks.R:113:3', 'test-preProcessWorks.R:128:3',
'test-preProcessWorks.R:143:3', 'test-preProcessWorks.R:165:3',
'test-preProcessWorks.R:179:3', 'test-preProcessWorks.R:202:3',
'test-preProcessWorks.R:233:3', 'test-preProcessWorks.R:257:3',
'test-preProcessWorks.R:270:3', 'test-preProcessWorks.R:286:3',
'test-preProcessWorks.R:302:3', 'test-preProcessWorks.R:315:3',
'test-preProcessWorks.R:328:3', 'test-preProcessWorks.R:348:3',
'test-preProcessWorks.R:361:3', 'test-preProcessWorks.R:374:3',
'test-preProcessWorks.R:391:3', 'test-preProcessWorks.R:409:3',
'test-preProcessWorks.R:438:3', 'test-preProcessWorks.R:459:3',
'test-preProcessWorks.R:487:3', 'test-preProcessWorks.R:543:3',
'test-preProcessWorks.R:569:3', 'test-preProcessWorks.R:672:3',
'test-prepInputs-large-files.R:2:3', 'test-prepInputs-large-files.R:35:3',
'test-prepInputs-large-files.R:61:3', 'test-prepInputs.R:2:3',
'test-prepInputs.R:180:3', 'test-prepInputs.R:327:3',
'test-prepInputs.R:1141:3', 'test-prepInputs.R:1337:3',
'test-prepInputs.R:1496:3', 'test-prepInputs.R:1571:3',
'test-prepInputs.R:1859:3', 'test-prepInputs.R:1883:3',
'test-prepInputsInNestedArchives.R:2:3',
'test-prepInputsInNestedArchives.R:13:3',
'test-prepInputsInNestedArchives.R:28:3',
'test-prepInputsInNestedArchives.R:39:3',
'test-prepInputsInNestedArchives.R:59:5',
'test-prepInputsInNestedArchives.R:82:5',
'test-prepInputsInNestedArchives.R:104:5',
'test-prepInputsInNestedArchives.R:141:5',
'test-prepInputsInNestedArchives.R:176:3',
'test-prepInputsInNestedArchives.R:208:3', 'test-symlinks.R:2:3'
• The Google Drive url is dead (1): 'test-postProcess.R:342:3'
• empty test (3): 'test-download.R:1:1', 'test-examples.R:1:1',
'test-preProcessWorks.R:467:1'
• test cloudCache inside Cache -- Not fully written test (1):
'test-multipleCacheRepo.R:38:3'
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-devMode.R:26:3'): test devMode ─────────────────────────────────
Error in ``[.data.table`(isInRepoAlt, , `:=`(iden, identical(sum(get(.cacheTableTagColName("tag")) %in% userTags), length(userTags))), by = eval(.cacheTableHashColName()))`: attempt access index 4/4 in VECTOR_ELT
Backtrace:
▆
1. └─reproducible::Cache(...) at test-devMode.R:26:3
2. └─reproducible:::devModeFn1(...)
3. ├─...[]
4. └─data.table:::`[.data.table`(...)
[ FAIL 1 | WARN 0 | SKIP 90 | PASS 456 ]
Error:
! Test failures.
Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc
Version: 2.1.2
Check: examples
Result: ERROR
Running examples in 'reproducible-Ex.R' failed
The error most likely occurred in:
> ### Name: gdalProject
> ### Title: 3-Step postProcess sequence for SpatRasters using 'gdalwarp'
> ### Aliases: gdalProject gdalResample gdalMask
>
> ### ** Examples
>
> # prepare dummy data -- 3 SpatRasters, 2 SpatVectors
> # need 2 SpatRaster
> rf <- system.file("ex/elev.tif", package = "terra")
> elev1 <- terra::rast(rf)
> #'
> ras2 <- terra::deepcopy(elev1)
> ras2[ras2 > 200 & ras2 < 300] <- NA_integer_
> terra::values(elev1) <- rep(1L, terra::ncell(ras2))
> #'
> # a polygon vector
> f <- system.file("ex/lux.shp", package = "terra")
> vOrig <- terra::vect(f)
Warning: PROJ: proj_identify: Cannot find proj.db (GDAL error 1)
> v <- vOrig[1:2, ]
> #'
> utm <- terra::crs("epsg:23028") # $wkt
Warning: PROJ: proj_create_from_database: Cannot find proj.db (GDAL error 1)
Error: [rast] empty srs
Execution halted
Flavor: r-oldrel-windows-x86_64
Version: 2.1.2
Check: tests
Result: ERROR
Running 'test-all.R' [115s]
Running the tests in 'tests/test-all.R' failed.
Complete output:
> library(testthat)
>
> # NOTE: ALL OPTIONS ARE BEING SET IN tests/testthat/setup.R
>
> ## run all tests using different combinations of env vars
> if (nzchar(Sys.getenv("NOT_CRAN")) && as.logical(Sys.getenv("NOT_CRAN"))) {
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "raster::raster")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast") ## default
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "false") ## default
+ test_check("reproducible")
+
+ Sys.setenv(R_REPRODUCIBLE_RASTER_READ = "terra::rast")
+ Sys.setenv(R_REPRODUCIBLE_USE_DBI = "true")
+ test_check("reproducible")
+ } else {
+ test_check("reproducible")
+ }
Loading required package: reproducible
Command Line Error:
Cannot find archive
[ FAIL 1 | WARN 16 | SKIP 90 | PASS 398 ]
══ Skipped tests (90) ══════════════════════════════════════════════════════════
• No Drive token (3): 'test-misc.R:137:3', 'test-prepInputs.R:1199:3',
'test-prepInputs.R:1219:3'
• On CRAN (82): 'test-cache.R:2:3', 'test-cache.R:748:3', 'test-cache.R:768:3',
'test-cache.R:961:3', 'test-cache.R:1515:3', 'test-cache.R:1561:3',
'test-cacheGeo.R:2:3', 'test-cloud.R:2:3', 'test-cloud.R:145:3',
'test-cloud.R:184:3', 'test-cloud.R:212:3', 'test-cloud.R:239:3',
'test-cluster.R:2:3', 'test-filesMissingExtension.R:2:3',
'test-filesMissingExtension.R:17:3', 'test-filesMissingExtension.R:32:3',
'test-filesMissingExtension.R:47:3', 'test-filesMissingExtension.R:62:3',
'test-gis.R:2:3', 'test-misc.R:62:3', 'test-postProcess.R:2:3',
'test-postProcess.R:232:3', 'test-postProcess.R:276:3',
'test-preProcessDoesntWork.R:2:3', 'test-preProcessDoesntWork.R:121:3',
'test-preProcessDoesntWork.R:135:3', 'test-preProcessDoesntWork.R:149:3',
'test-preProcessDoesntWork.R:179:3', 'test-preProcessWorks.R:2:3',
'test-preProcessWorks.R:13:3', 'test-preProcessWorks.R:24:3',
'test-preProcessWorks.R:35:3', 'test-preProcessWorks.R:57:3',
'test-preProcessWorks.R:82:3', 'test-preProcessWorks.R:96:3',
'test-preProcessWorks.R:113:3', 'test-preProcessWorks.R:128:3',
'test-preProcessWorks.R:143:3', 'test-preProcessWorks.R:165:3',
'test-preProcessWorks.R:179:3', 'test-preProcessWorks.R:202:3',
'test-preProcessWorks.R:233:3', 'test-preProcessWorks.R:257:3',
'test-preProcessWorks.R:270:3', 'test-preProcessWorks.R:286:3',
'test-preProcessWorks.R:302:3', 'test-preProcessWorks.R:315:3',
'test-preProcessWorks.R:328:3', 'test-preProcessWorks.R:348:3',
'test-preProcessWorks.R:361:3', 'test-preProcessWorks.R:374:3',
'test-preProcessWorks.R:391:3', 'test-preProcessWorks.R:409:3',
'test-preProcessWorks.R:438:3', 'test-preProcessWorks.R:459:3',
'test-preProcessWorks.R:487:3', 'test-preProcessWorks.R:543:3',
'test-preProcessWorks.R:569:3', 'test-preProcessWorks.R:672:3',
'test-prepInputs-large-files.R:2:3', 'test-prepInputs-large-files.R:35:3',
'test-prepInputs-large-files.R:61:3', 'test-prepInputs.R:2:3',
'test-prepInputs.R:180:3', 'test-prepInputs.R:327:3',
'test-prepInputs.R:1141:3', 'test-prepInputs.R:1337:3',
'test-prepInputs.R:1496:3', 'test-prepInputs.R:1571:3',
'test-prepInputs.R:1859:3', 'test-prepInputs.R:1883:3',
'test-prepInputsInNestedArchives.R:2:3',
'test-prepInputsInNestedArchives.R:13:3',
'test-prepInputsInNestedArchives.R:28:3',
'test-prepInputsInNestedArchives.R:39:3',
'test-prepInputsInNestedArchives.R:59:5',
'test-prepInputsInNestedArchives.R:82:5',
'test-prepInputsInNestedArchives.R:104:5',
'test-prepInputsInNestedArchives.R:141:5',
'test-prepInputsInNestedArchives.R:176:3',
'test-prepInputsInNestedArchives.R:208:3', 'test-symlinks.R:2:3'
• The Google Drive url is dead (1): 'test-postProcess.R:342:3'
• empty test (3): 'test-download.R:1:1', 'test-examples.R:1:1',
'test-preProcessWorks.R:467:1'
• test cloudCache inside Cache -- Not fully written test (1):
'test-multipleCacheRepo.R:38:3'
══ Failed tests ════════════════════════════════════════════════════════════════
── Error ('test-postProcessTerra.R:182:5'): testing terra ──────────────────────
Error: [rast] empty srs
Backtrace:
▆
1. ├─terra::crs("epsg:23028") at test-postProcessTerra.R:182:5
2. └─terra::crs("epsg:23028")
3. └─terra (local) .local(x, ...)
4. ├─terra::rast(crs = x)
5. └─terra::rast(crs = x)
6. └─terra (local) .local(x = x, ...)
7. └─terra:::new_rast(...)
8. └─terra:::messages(r, "rast")
9. └─terra:::error(f, x@pntr$getError())
[ FAIL 1 | WARN 16 | SKIP 90 | PASS 398 ]
Error:
! Test failures.
Execution halted
Flavor: r-oldrel-windows-x86_64
Version: 2.1.2
Check: re-building of vignette outputs
Result: ERROR
Error(s) in re-building vignettes:
--- re-building 'Intro-to-Cache.Rmd' using rmarkdown
Quitting from Intro-to-Cache.Rmd:65-97 [function-level]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error:
! [project] cannot get output boundaries for the target crs
---
Backtrace:
▆
1. ├─base::system.time(...)
2. ├─base::suppressWarnings(map1 <- terra::project(ras, newCRS))
3. │ └─base::withCallingHandlers(...)
4. ├─terra::project(ras, newCRS)
5. └─terra::project(ras, newCRS)
6. └─terra (local) .local(x, ...)
7. └─terra:::messages(x, "project")
8. └─terra:::error(f, x@pntr$getError())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'Intro-to-Cache.Rmd' failed with diagnostics:
[project] cannot get output boundaries for the target crs
--- failed re-building 'Intro-to-Cache.Rmd'
SUMMARY: processing the following file failed:
'Intro-to-Cache.Rmd'
Error: Vignette re-building failed.
Execution halted
Flavor: r-oldrel-windows-x86_64