Running ‘test-all.R’ [159s/277s]
Running the tests in ‘tests/test-all.R’ failed.
Complete output:
  > library(testthat)
  > test_check("SpaDES.core")
  Loading required package: SpaDES.core
  Loading required package: quickPlot
  Loading required package: reproducible
  
  Attaching package: 'SpaDES.core'
  
  The following objects are masked from 'package:stats':
  
      end, start
  
  The following object is masked from 'package:utils':
  
      citation
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 1. Error: test cache (@test-cache.R#32)  ────────────────────────────────────
  The 'RandomFields' package is required but not installed.
  1: eval(expr) at testthat/test-cache.R:32
  2: eval(expr)
  3: experiment(Copy(mySim), replicates = 2, cache = TRUE, debug = FALSE, omitArgs = c("progress", 
         "debug", ".plotInitialTime", ".saveInitialTime"))
  4: experiment(Copy(mySim), replicates = 2, cache = TRUE, debug = FALSE, omitArgs = c("progress", 
         "debug", ".plotInitialTime", ".saveInitialTime"))
  5: do.call(get(parFun), args)
  6: (function (X, FUN, ...) 
     {
         FUN <- match.fun(FUN)
         if (!is.vector(X) || is.object(X)) 
             X <- as.list(X)
         .Internal(lapply(X, FUN))
     })(X = 1:2, FUN = function (ind, ...) 
     {
         mod <- strsplit(names(factorialExp), split = "\\.") %>% sapply(function(x) x[1])
         param <- strsplit(names(factorialExp), split = "\\.") %>% sapply(function(x) x[2])
         param[is.na(param)] <- ""
         paramValues <- factorialExp[ind, ]
         whNotExpLevel <- which(colnames(paramValues) != "expLevel")
         if (length(whNotExpLevel) < length(paramValues)) {
             mod <- mod[whNotExpLevel]
             param <- param[whNotExpLevel]
             paramValues <- paramValues[whNotExpLevel]
         }
         whNotRepl <- which(colnames(paramValues) != "replicate")
         if (length(whNotRepl) < length(paramValues)) {
             repl <- paramValues$replicate
             mod <- mod[whNotRepl]
             param <- param[whNotRepl]
             paramValues <- paramValues[whNotRepl]
         }
         notNA <- which(!is.na(paramValues))
         if (length(notNA) < length(mod)) {
             mod <- mod[notNA]
             param <- param[notNA]
             paramValues <- paramValues[notNA]
         }
         sim_ <- Copy(sim)
         experimentDF <- data.frame(module = character(0), param = character(0), val = I(list()), 
             modules = character(0), input = data.frame(), object = character(0), expLevel = numeric(0), 
             stringsAsFactors = FALSE)
         for (x in seq_along(mod)) {
             if (any(mod != "modules")) {
                 y <- factorialExp[ind, names(paramValues)[x]]
                 if (!is.na(y) & (mod[x] != "modules")) {
                     val <- params[[mod[x]]][[param[[x]]]][[y]]
                     params(sim_)[[mod[x]]][[param[[x]]]] <- val
                     experimentDF <- rbindlist(l = list(experimentDF, data.frame(module = if (!(mod[x] %in% 
                       c("input", "object"))) mod[x] else NA, param = if (!(mod[x] %in% 
                       c("input", "object"))) param[x] else NA, val = if (!(mod[x] %in% 
                       c("input", "object"))) I(list(val)) else list(NA), modules = paste0(unlist(modules[factorialExp[ind, 
                       "modules"]]), collapse = ","), input = if (mod[x] %in% c("input")) inputs[[factorialExp[ind, 
                       "input"]]] else NA, object = if (mod[x] %in% c("object")) names(objects)[[factorialExp[ind, 
                       "object"]]] else NA, expLevel = factorialExp[ind, "expLevel"], 
                       stringsAsFactors = FALSE)), use.names = TRUE, fill = TRUE)
                 }
             }
             else {
                 experimentDF <- rbindlist(l = list(experimentDF, data.frame(modules = paste0(unlist(modules[factorialExp[ind, 
                     "modules"]]), collapse = ","), expLevel = factorialExp[ind, "expLevel"], 
                     stringsAsFactors = FALSE)), use.names = TRUE, fill = TRUE)
             }
             if (!any(unlist(lapply(modules, is.null)))) {
                 if ("modules" %in% names(factorialExp)) {
                     if (!identical(sort(unlist(modules[factorialExp[ind, "modules"]])), 
                       sort(unlist(SpaDES.core::modules(sim))))) {
                       sim_ <- simInit(params = params(sim_), modules = as.list(unlist(modules[factorialExp[ind, 
                         "modules"]])), times = append(lapply(times(sim_)[2:3], as.numeric), 
                         times(sim_)[4]), paths = paths(sim_), outputs = outputs(sim_))
                     }
                 }
             }
             else {
                 sim_ <- sim
             }
         }
         if (any(dirPrefix == "simNum")) {
             exptNum <- paddedFloatToChar(factorialExp$expLevel[ind], ceiling(log10(numExpLevels + 
                 1)))
         }
         dirPrefixTmp <- paste0(dirPrefix, collapse = "")
         if ((numExpLevels > 1) & (substrLength > 0)) {
             dirName <- paste(collapse = "-", substr(mod, 1, substrLength), substr(param, 
                 1, substrLength), paramValues, sep = "_")
             dirName <- gsub(dirName, pattern = "__", replacement = "_")
             if (any(dirPrefix == "simNum")) {
                 dirPrefix <- gsub(dirPrefixTmp, pattern = "simNum", replacement = exptNum)
             }
             if (any(dirPrefix != "")) {
                 dirName <- paste(paste(dirPrefix, collapse = ""), dirName, sep = "_")
             }
         }
         else if (substrLength == 0) {
             if (any(dirPrefix != "")) {
                 simplePrefix <- if (any(dirPrefix == "simNum")) 
                     exptNum
                 else ""
                 dirName <- gsub(dirPrefixTmp, pattern = "simNum", replacement = simplePrefix)
             }
         }
         else {
             if (any(dirPrefix != "")) {
                 dirName <- gsub(dirPrefixTmp, pattern = "simNum", replacement = "")
             }
         }
         if (exists("repl", inherits = FALSE)) {
             nn <- paste0("rep", paddedFloatToChar(repl, ceiling(log10(length(replicates) + 
                 1))))
             dirName <- if (!is.null(dirName)) {
                 file.path(dirName, nn)
             }
             else {
                 file.path(nn)
             }
         }
         newOutputPath <- file.path(paths(sim_)$outputPath, dirName) %>% gsub(pattern = "/$", 
             replacement = "") %>% gsub(pattern = "//", replacement = "/")
         if (!dir.exists(newOutputPath)) 
             dir.create(newOutputPath, recursive = TRUE)
         paths(sim_)$outputPath <- newOutputPath
         if (NROW(outputs(sim_))) {
             outputs(sim_)$file <- file.path(newOutputPath, basename(outputs(sim_)$file))
         }
         if (length(inputs) > 0) {
             SpaDES.core::inputs(sim_) <- inputs[[factorialExp[ind, "input"]]]
         }
         if (length(objects) > 0) {
             replaceObjName <- strsplit(names(objects)[[factorialExp[ind, "object"]]], 
                 split = "\\.")[[1]][1]
             sim_[[replaceObjName]] <- objects[[factorialExp[ind, "object"]]]
         }
         dots <- list(...)
         if (is.null(dots$cache)) 
             dots$cache <- FALSE
         sim3 <- spades(sim_, replicate = ind, ...)
         return(list(sim3, experimentDF))
     }, cache = TRUE, debug = FALSE, omitArgs = c("progress", "debug", ".plotInitialTime", 
     ".saveInitialTime"), notOlderThan = NULL)
  7: FUN(X[[i]], ...)
  8: spades(sim_, replicate = ind, ...)
  9: spades(sim_, replicate = ind, ...)
  10: do.call(quote = TRUE, Cache, args = append(list(spades, sim = sim, debug = debug, 
         progress = progress, .plotInitialTime = .plotInitialTime, .saveInitialTime = .saveInitialTime, 
         omitArgs = omitArgs, notOlderThan = notOlderThan), dots))
  ...
  16: FUN(...)
  17: FUN(...)
  18: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  19: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  20: eval(fnCallAsExpr)
  21: eval(fnCallAsExpr)
  22: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  23: Init(sim)
  24: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  25: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 2. Error: test event-level cache (@test-cache.R#83)  ────────────────────────
  The 'RandomFields' package is required but not installed.
  1: expect_true(!"Using cached copy of init event in randomLandscapes module" %in% capture_output(sims <- spades(Copy(mySim), 
         notOlderThan = Sys.time(), debug = FALSE))) at testthat/test-cache.R:83
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: "Using cached copy of init event in randomLandscapes module" %in% capture_output(sims <- spades(Copy(mySim), 
         notOlderThan = Sys.time(), debug = FALSE))
  5: capture_output(sims <- spades(Copy(mySim), notOlderThan = Sys.time(), debug = FALSE))
  6: capture_output_lines(code, print, width = width)
  7: eval_with_output(code, print = print, width = width)
  8: withr::with_output_sink(temp, withVisible(code))
  9: force(code)
  10: withVisible(code)
  ...
  16: eval(fnCallAsExpr)
  17: Cache(FUN = get(moduleCall, envir = fnEnv), sim = sim, eventTime = cur[["eventTime"]], 
         eventType = cur[["eventType"]], .objects = moduleSpecificObjects, notOlderThan = notOlderThan, 
         outputObjects = moduleSpecificOutputObjects, classOptions = classOptions, cacheRepo = sim@paths[["cachePath"]])
  18: standardGeneric("Cache")
  19: eval(mc, env)
  20: eval(mc, env)
  21: Cache(FUN = FUN, ..., notOlderThan = notOlderThan, .objects = .objects, outputObjects = outputObjects, 
         cacheRepo = cacheRepo, classOptions = classOptions)
  22: FUN(...)
  23: Init(sim)
  24: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  25: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 3. Error: test module-level cache (@test-cache.R#131)  ──────────────────────
  The 'RandomFields' package is required but not installed.
  1: expect_true(!("Using cached copy of init event in randomLandscapes module" %in% capture_output(sims <- spades(Copy(mySim), 
         notOlderThan = Sys.time(), debug = FALSE)))) at testthat/test-cache.R:131
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: "Using cached copy of init event in randomLandscapes module" %in% capture_output(sims <- spades(Copy(mySim), 
         notOlderThan = Sys.time(), debug = FALSE))
  5: capture_output(sims <- spades(Copy(mySim), notOlderThan = Sys.time(), debug = FALSE))
  6: capture_output_lines(code, print, width = width)
  7: eval_with_output(code, print = print, width = width)
  8: withr::with_output_sink(temp, withVisible(code))
  9: force(code)
  10: withVisible(code)
  ...
  16: eval(fnCallAsExpr)
  17: Cache(FUN = get(moduleCall, envir = fnEnv), sim = sim, eventTime = cur[["eventTime"]], 
         eventType = cur[["eventType"]], .objects = moduleSpecificObjects, notOlderThan = notOlderThan, 
         outputObjects = moduleSpecificOutputObjects, classOptions = classOptions, cacheRepo = sim@paths[["cachePath"]])
  18: standardGeneric("Cache")
  19: eval(mc, env)
  20: eval(mc, env)
  21: Cache(FUN = FUN, ..., notOlderThan = notOlderThan, .objects = .objects, outputObjects = outputObjects, 
         cacheRepo = cacheRepo, classOptions = classOptions)
  22: FUN(...)
  23: Init(sim)
  24: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  25: stop("The 'RandomFields' package is required but not installed.")
  
    Using cached copy of .inputObjects event in test module.   
  Failed with error:  'there is no package called 'RandomFields''
  ── 4. Error: test checkpointing (@test-checkpoint.R#24)  ───────────────────────
  The 'RandomFields' package is required but not installed.
  1: suppressWarnings(spades(simA)) at testthat/test-checkpoint.R:24
  2: withCallingHandlers(expr, warning = function(w) invokeRestart("muffleWarning"))
  3: spades(simA)
  4: spades(simA)
  5: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  6: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  7: eval(fnCallAsExpr)
  8: eval(fnCallAsExpr)
  9: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  10: Init(sim)
  11: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  12: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 5. Error: test checkpointing with disk-backed raster (@test-checkpoint.R#85) 
  The 'RandomFields' package is required but not installed.
  1: spades(simA) at testthat/test-checkpoint.R:85
  2: spades(simA)
  3: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  4: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  5: eval(fnCallAsExpr)
  6: eval(fnCallAsExpr)
  7: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  8: Init(sim)
  9: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  10: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 6. Error: simulation runs with simInit and spades (@test-conditionalEvents.R#
  The 'RandomFields' package is required but not installed.
  1: spades(mySim, debug = FALSE) at testthat/test-conditionalEvents.R:74
  2: spades(mySim, debug = FALSE)
  3: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  4: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  5: eval(fnCallAsExpr)
  6: eval(fnCallAsExpr)
  7: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  8: Init(sim)
  9: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  10: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 7. Error: experiment does not work correctly (@test-experiment.R#33)  ───────
  The 'RandomFields' package is required but not installed.
  1: experiment(mySimFull, params = experimentParams) at testthat/test-experiment.R:33
  2: experiment(mySimFull, params = experimentParams)
  3: do.call(get(parFun), args)
  4: (function (X, FUN, ...) 
     {
         FUN <- match.fun(FUN)
         if (!is.vector(X) || is.object(X)) 
             X <- as.list(X)
         .Internal(lapply(X, FUN))
     })(X = 1:4, FUN = function (ind, ...) 
     {
         mod <- strsplit(names(factorialExp), split = "\\.") %>% sapply(function(x) x[1])
         param <- strsplit(names(factorialExp), split = "\\.") %>% sapply(function(x) x[2])
         param[is.na(param)] <- ""
         paramValues <- factorialExp[ind, ]
         whNotExpLevel <- which(colnames(paramValues) != "expLevel")
         if (length(whNotExpLevel) < length(paramValues)) {
             mod <- mod[whNotExpLevel]
             param <- param[whNotExpLevel]
             paramValues <- paramValues[whNotExpLevel]
         }
         whNotRepl <- which(colnames(paramValues) != "replicate")
         if (length(whNotRepl) < length(paramValues)) {
             repl <- paramValues$replicate
             mod <- mod[whNotRepl]
             param <- param[whNotRepl]
             paramValues <- paramValues[whNotRepl]
         }
         notNA <- which(!is.na(paramValues))
         if (length(notNA) < length(mod)) {
             mod <- mod[notNA]
             param <- param[notNA]
             paramValues <- paramValues[notNA]
         }
         sim_ <- Copy(sim)
         experimentDF <- data.frame(module = character(0), param = character(0), val = I(list()), 
             modules = character(0), input = data.frame(), object = character(0), expLevel = numeric(0), 
             stringsAsFactors = FALSE)
         for (x in seq_along(mod)) {
             if (any(mod != "modules")) {
                 y <- factorialExp[ind, names(paramValues)[x]]
                 if (!is.na(y) & (mod[x] != "modules")) {
                     val <- params[[mod[x]]][[param[[x]]]][[y]]
                     params(sim_)[[mod[x]]][[param[[x]]]] <- val
                     experimentDF <- rbindlist(l = list(experimentDF, data.frame(module = if (!(mod[x] %in% 
                       c("input", "object"))) mod[x] else NA, param = if (!(mod[x] %in% 
                       c("input", "object"))) param[x] else NA, val = if (!(mod[x] %in% 
                       c("input", "object"))) I(list(val)) else list(NA), modules = paste0(unlist(modules[factorialExp[ind, 
                       "modules"]]), collapse = ","), input = if (mod[x] %in% c("input")) inputs[[factorialExp[ind, 
                       "input"]]] else NA, object = if (mod[x] %in% c("object")) names(objects)[[factorialExp[ind, 
                       "object"]]] else NA, expLevel = factorialExp[ind, "expLevel"], 
                       stringsAsFactors = FALSE)), use.names = TRUE, fill = TRUE)
                 }
             }
             else {
                 experimentDF <- rbindlist(l = list(experimentDF, data.frame(modules = paste0(unlist(modules[factorialExp[ind, 
                     "modules"]]), collapse = ","), expLevel = factorialExp[ind, "expLevel"], 
                     stringsAsFactors = FALSE)), use.names = TRUE, fill = TRUE)
             }
             if (!any(unlist(lapply(modules, is.null)))) {
                 if ("modules" %in% names(factorialExp)) {
                     if (!identical(sort(unlist(modules[factorialExp[ind, "modules"]])), 
                       sort(unlist(SpaDES.core::modules(sim))))) {
                       sim_ <- simInit(params = params(sim_), modules = as.list(unlist(modules[factorialExp[ind, 
                         "modules"]])), times = append(lapply(times(sim_)[2:3], as.numeric), 
                         times(sim_)[4]), paths = paths(sim_), outputs = outputs(sim_))
                     }
                 }
             }
             else {
                 sim_ <- sim
             }
         }
         if (any(dirPrefix == "simNum")) {
             exptNum <- paddedFloatToChar(factorialExp$expLevel[ind], ceiling(log10(numExpLevels + 
                 1)))
         }
         dirPrefixTmp <- paste0(dirPrefix, collapse = "")
         if ((numExpLevels > 1) & (substrLength > 0)) {
             dirName <- paste(collapse = "-", substr(mod, 1, substrLength), substr(param, 
                 1, substrLength), paramValues, sep = "_")
             dirName <- gsub(dirName, pattern = "__", replacement = "_")
             if (any(dirPrefix == "simNum")) {
                 dirPrefix <- gsub(dirPrefixTmp, pattern = "simNum", replacement = exptNum)
             }
             if (any(dirPrefix != "")) {
                 dirName <- paste(paste(dirPrefix, collapse = ""), dirName, sep = "_")
             }
         }
         else if (substrLength == 0) {
             if (any(dirPrefix != "")) {
                 simplePrefix <- if (any(dirPrefix == "simNum")) 
                     exptNum
                 else ""
                 dirName <- gsub(dirPrefixTmp, pattern = "simNum", replacement = simplePrefix)
             }
         }
         else {
             if (any(dirPrefix != "")) {
                 dirName <- gsub(dirPrefixTmp, pattern = "simNum", replacement = "")
             }
         }
         if (exists("repl", inherits = FALSE)) {
             nn <- paste0("rep", paddedFloatToChar(repl, ceiling(log10(length(replicates) + 
                 1))))
             dirName <- if (!is.null(dirName)) {
                 file.path(dirName, nn)
             }
             else {
                 file.path(nn)
             }
         }
         newOutputPath <- file.path(paths(sim_)$outputPath, dirName) %>% gsub(pattern = "/$", 
             replacement = "") %>% gsub(pattern = "//", replacement = "/")
         if (!dir.exists(newOutputPath)) 
             dir.create(newOutputPath, recursive = TRUE)
         paths(sim_)$outputPath <- newOutputPath
         if (NROW(outputs(sim_))) {
             outputs(sim_)$file <- file.path(newOutputPath, basename(outputs(sim_)$file))
         }
         if (length(inputs) > 0) {
             SpaDES.core::inputs(sim_) <- inputs[[factorialExp[ind, "input"]]]
         }
         if (length(objects) > 0) {
             replaceObjName <- strsplit(names(objects)[[factorialExp[ind, "object"]]], 
                 split = "\\.")[[1]][1]
             sim_[[replaceObjName]] <- objects[[factorialExp[ind, "object"]]]
         }
         dots <- list(...)
         if (is.null(dots$cache)) 
             dots$cache <- FALSE
         sim3 <- spades(sim_, replicate = ind, ...)
         return(list(sim3, experimentDF))
     }, notOlderThan = NULL)
  5: FUN(X[[i]], ...)
  6: spades(sim_, replicate = ind, ...)
  7: spades(sim_, replicate = ind, ...)
  8: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  9: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  10: eval(fnCallAsExpr)
  11: eval(fnCallAsExpr)
  12: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  13: Init(sim)
  14: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  15: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 8. Error: test-load.R: loading inputs does not work correctly (@test-load.R#3
  The 'RandomFields' package is required but not installed.
  1: spades(mySim) at testthat/test-load.R:36
  2: spades(mySim)
  3: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  4: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  5: eval(fnCallAsExpr)
  6: eval(fnCallAsExpr)
  7: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  8: Init(sim)
  9: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  10: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 9. Error: test-load.R: passing arguments to filelist in simInit does not work
  The 'RandomFields' package is required but not installed.
  1: spades(sim2) at testthat/test-load.R:164
  2: spades(sim2)
  3: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  4: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  5: eval(fnCallAsExpr)
  6: eval(fnCallAsExpr)
  7: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  8: Init(sim)
  9: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  10: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 10. Error: test-load.R: passing objects to simInit does not work correctly (@
  The 'RandomFields' package is required but not installed.
  1: spades(sim6) at testthat/test-load.R:283
  2: spades(sim6)
  3: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  4: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  5: eval(fnCallAsExpr)
  6: eval(fnCallAsExpr)
  7: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  8: Init(sim)
  9: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  10: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 11. Error: simulation runs with simInit and spades (@test-multipleModulePaths
  The 'RandomFields' package is required but not installed.
  1: simInit(times, params, modules = modules, objects = list(), paths) %>% spades(debug = FALSE) at testthat/test-multipleModulePaths.R:77
  2: withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
  3: eval(quote(`_fseq`(`_lhs`)), env, env)
  4: eval(quote(`_fseq`(`_lhs`)), env, env)
  5: `_fseq`(`_lhs`)
  6: freduce(value, `_function_list`)
  7: withVisible(function_list[[k]](value))
  8: function_list[[k]](value)
  9: spades(., debug = FALSE)
  10: spades(., debug = FALSE)
  11: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  12: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  13: eval(fnCallAsExpr)
  14: eval(fnCallAsExpr)
  15: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  16: Init(sim)
  17: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  18: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 12. Error: test objectSynonyms (@test-objectSynonyms.R#34)  ─────────────────
  The 'RandomFields' package is required but not installed.
  1: spades(sim, .plotInitialTime = NA, debug = FALSE) at testthat/test-objectSynonyms.R:34
  2: spades(sim, .plotInitialTime = NA, debug = FALSE)
  3: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  4: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  5: eval(fnCallAsExpr)
  6: eval(fnCallAsExpr)
  7: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  8: Init(sim)
  9: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  10: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 13. Error: saving files does not work correctly (@test-save.R#30)  ──────────
  The 'RandomFields' package is required but not installed.
  1: spades(mySim) at testthat/test-save.R:30
  2: spades(mySim)
  3: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  4: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  5: eval(fnCallAsExpr)
  6: eval(fnCallAsExpr)
  7: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  8: Init(sim)
  9: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  10: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 14. Error: simList object initializes correctly (@test-simList.R#302)  ──────
  The 'RandomFields' package is required but not installed.
  1: SpaDES.tools::gaussMap(ras, scale = 100, var = 0.01) at testthat/test-simList.R:302
  2: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 15. Error: simulation runs with simInit and spades (@test-simulation.R#19)  ─
  The 'RandomFields' package is required but not installed.
  1: simInit(times, params, modules, objects = list(), paths) %>% spades(debug = FALSE) at testthat/test-simulation.R:19
  2: withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
  3: eval(quote(`_fseq`(`_lhs`)), env, env)
  4: eval(quote(`_fseq`(`_lhs`)), env, env)
  5: `_fseq`(`_lhs`)
  6: freduce(value, `_function_list`)
  7: withVisible(function_list[[k]](value))
  8: function_list[[k]](value)
  9: spades(., debug = FALSE)
  10: spades(., debug = FALSE)
  11: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  12: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  13: eval(fnCallAsExpr)
  14: eval(fnCallAsExpr)
  15: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  16: Init(sim)
  17: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  18: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 16. Error: spades calls with different signatures don't work (@test-simulatio
  The 'RandomFields' package is required but not installed.
  1: assign(paste0("st", i), system.time(spades(a, cache = TRUE, .plotInitialTime = NA))) at testthat/test-simulation.R:145
  2: system.time(spades(a, cache = TRUE, .plotInitialTime = NA))
  3: spades(a, cache = TRUE, .plotInitialTime = NA)
  4: spades(a, cache = TRUE, .plotInitialTime = NA)
  5: do.call(quote = TRUE, Cache, args = append(list(spades, sim = sim, debug = debug, 
         progress = progress, .plotInitialTime = .plotInitialTime, .saveInitialTime = .saveInitialTime, 
         omitArgs = omitArgs, notOlderThan = notOlderThan), dots))
  6: (new("standardGeneric", .Data = function (FUN, ..., notOlderThan = NULL, .objects = NULL, 
         outputObjects = NULL, algo = "xxhash64", cacheRepo = NULL, length = getOption("reproducible.length", 
             Inf), compareRasterFileLength, userTags = c(), digestPathContent, omitArgs = NULL, 
         classOptions = list(), debugCache = character(), sideEffect = FALSE, makeCopy = FALSE, 
         quick = getOption("reproducible.quick", FALSE), verbose = getOption("reproducible.verbose", 
             0), cacheId = NULL, useCache = getOption("reproducible.useCache", TRUE), 
         showSimilar = NULL) 
     standardGeneric("Cache"), generic = structure("Cache", package = "reproducible"), 
         package = "reproducible", group = list(), valueClass = character(0), signature = "...", 
         default = new("derivedDefaultMethod", .Data = function (FUN, ..., notOlderThan = NULL, 
             .objects = NULL, outputObjects = NULL, algo = "xxhash64", cacheRepo = NULL, 
             length = getOption("reproducible.length", Inf), compareRasterFileLength, 
             userTags = c(), digestPathContent, omitArgs = NULL, classOptions = list(), 
             debugCache = character(), sideEffect = FALSE, makeCopy = FALSE, quick = getOption("reproducible.quick", 
                 FALSE), verbose = getOption("reproducible.verbose", 0), cacheId = NULL, 
             useCache = getOption("reproducible.useCache", TRUE), showSimilar = NULL) 
         {
             archivist::cache(cacheRepo, FUN, ..., notOlderThan, algo, userTags = userTags)
         }, target = new("signature", .Data = "ANY", names = "FUN", package = "methods"), 
             defined = new("signature", .Data = "ANY", names = "FUN", package = "methods"), 
             generic = structure("Cache", package = "reproducible")), skeleton = (new("derivedDefaultMethod", 
             .Data = function (FUN, ..., notOlderThan = NULL, .objects = NULL, outputObjects = NULL, 
                 algo = "xxhash64", cacheRepo = NULL, length = getOption("reproducible.length", 
                     Inf), compareRasterFileLength, userTags = c(), digestPathContent, 
                 omitArgs = NULL, classOptions = list(), debugCache = character(), sideEffect = FALSE, 
                 makeCopy = FALSE, quick = getOption("reproducible.quick", FALSE), verbose = getOption("reproducible.verbose", 
                     0), cacheId = NULL, useCache = getOption("reproducible.useCache", 
                     TRUE), showSimilar = NULL) 
             {
                 archivist::cache(cacheRepo, FUN, ..., notOlderThan, algo, userTags = userTags)
             }, target = new("signature", .Data = "ANY", names = "FUN", package = "methods"), 
             defined = new("signature", .Data = "ANY", names = "FUN", package = "methods"), 
             generic = structure("Cache", package = "reproducible")))(FUN, ..., notOlderThan = notOlderThan, 
             .objects = .objects, outputObjects = outputObjects, algo = algo, cacheRepo = cacheRepo, 
             length = length, compareRasterFileLength = compareRasterFileLength, userTags = userTags, 
             digestPathContent = digestPathContent, omitArgs = omitArgs, classOptions = classOptions, 
             debugCache = debugCache, sideEffect = sideEffect, makeCopy = makeCopy, quick = quick, 
             verbose = verbose, cacheId = cacheId, useCache = useCache, showSimilar = showSimilar)))(quote(new("nonstandardGenericFunction", 
         .Data = function (sim, debug = getOption("spades.debug"), progress = NA, cache, 
             .plotInitialTime = NULL, .saveInitialTime = NULL, notOlderThan = NULL, ...) 
         {
             standardGeneric("spades")
         }, generic = structure("spades", package = "SpaDES.core"), package = "SpaDES.core", 
         group = list(), valueClass = character(0), signature = c("sim", "debug", "progress", 
         "cache", ".plotInitialTime", ".saveInitialTime", "notOlderThan"), default = NULL, 
         skeleton = (function (sim, debug = getOption("spades.debug"), progress = NA, 
             cache, .plotInitialTime = NULL, .saveInitialTime = NULL, notOlderThan = NULL, 
             ...) 
         stop("invalid call in method dispatch to 'spades' (no default method)", domain = NA))(sim, 
             debug, progress, cache, .plotInitialTime, .saveInitialTime, notOlderThan, 
             ...))), sim = quote(new("simList", modules = structure(list("checkpoint", 
         "save", "progress", "load", `/home/ripley/R/Lib32/SpaDES.core/sampleModules/randomLandscapes` = "randomLandscapes", 
         `/home/ripley/R/Lib32/SpaDES.core/sampleModules/fireSpread` = "fireSpread"), modulesGraph = structure(list(
         from = character(0), to = character(0)), row.names = integer(0), class = "data.frame")), 
         params = list(.checkpoint = list(file = NULL, interval = NA_real_), .progress = list(
             interval = NA_real_, type = NA_character_), .globals = list(burnStats = "npixelsburned", 
             stackName = "landscape"), randomLandscapes = list(.plotInitialTime = structure(0, unit = "year"), 
             .plotInterval = NA_real_, .saveInitialTime = NA_real_, .saveInterval = NA_real_, 
             .useCache = FALSE, inRAM = FALSE, nx = 20, ny = 20, stackName = "landscape"), 
             fireSpread = list(.plotInitialTime = structure(0, unit = "year"), .plotInterval = 1, 
                 .saveInitialTime = NA_real_, .saveInterval = NA_real_, its = 1e+06, nFires = 10L, 
                 persistprob = 0, returnInterval = 1, spreadprob = 0.225, stackName = "landscape", 
                 startTime = structure(1, unit = "year"))), events = list(list(eventTime = structure(0, unit = "second"), 
             moduleName = "checkpoint", eventType = "init", eventPriority = 5), list(eventTime = structure(0, unit = "second"), 
             moduleName = "save", eventType = "init", eventPriority = 5), list(eventTime = structure(0, unit = "second"), 
             moduleName = "progress", eventType = "init", eventPriority = 5), list(eventTime = structure(0, unit = "second"), 
             moduleName = "load", eventType = "init", eventPriority = 5), list(eventTime = structure(0, unit = "second"), 
             moduleName = "randomLandscapes", eventType = "init", eventPriority = 5), 
             list(eventTime = structure(0, unit = "second"), moduleName = "fireSpread", 
                 eventType = "init", eventPriority = 5)), current = list(), completed = list(), 
         depends = new(".simDeps", dependencies = list(randomLandscapes = new(".moduleDeps", 
             name = "randomLandscapes", description = "Generate RasterStack of random maps representative of a forest landscape (DEM, forestAge, forestCover, habitatQuality, percentPine). Requires a global simulation parameter `stackName` be set.", 
             keywords = c("random map", "random landscape"), childModules = character(0), 
             authors = structure(list(list(given = c("Alex", "M"), family = "Chubaty", 
                 role = c("aut", "cre"), email = "alexander.chubaty@canada.ca", comment = NULL), 
                 list(given = c("Eliot", "J", "B"), family = "McIntire", role = c("aut", 
                 "cre"), email = "eliot.mcintire@canada.ca", comment = NULL)), class = "person"), 
             version = structure(list(c(1L, 6L, 0L)), class = "numeric_version"), spatialExtent = new("Extent", 
                 xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_), 
             timeframe = structure(list(sec = c(NA_real_, NA_real_), min = c(NA_integer_, 
             NA_integer_), hour = c(NA_integer_, NA_integer_), mday = c(NA_integer_, NA_integer_
             ), mon = c(NA_integer_, NA_integer_), year = c(NA_integer_, NA_integer_), 
                 wday = c(NA_integer_, NA_integer_), yday = c(NA_integer_, NA_integer_
                 ), isdst = c(-1L, -1L), zone = c("", ""), gmtoff = c(NA_integer_, NA_integer_
                 )), class = c("POSIXlt", "POSIXt"), tzone = c("GB", "GMT", "BST")), timeunit = "year", 
             citation = list(), documentation = list(), reqdPkgs = list("raster", "RColorBrewer", 
                 "SpaDES.tools"), parameters = structure(list(paramName = c("inRAM", "nx", 
             "ny", "stackName", ".plotInitialTime", ".plotInterval", ".saveInitialTime", 
             ".saveInterval", ".useCache"), paramClass = c("logical", "numeric", "numeric", 
             "character", "numeric", "numeric", "numeric", "numeric", "logical"), default = structure(list(
                 FALSE, 100L, 100L, "landscape", structure(0, unit = "year"), NA_real_, 
                 NA_real_, NA_real_, FALSE), class = "AsIs"), min = structure(list(TRUE, 
                 10L, 10L, NA, structure(0, unit = "year"), NA, NA, NA, c("init", "plot"
                 )), class = "AsIs"), max = structure(list(FALSE, 500L, 500L, NA, NA, 
                 NA, NA, NA, NA), class = "AsIs"), paramDesc = c("should the raster be stored in memory?", 
             "size of map (number of pixels) in the x dimension", "size of map (number of pixels) in the y dimension", 
             "name of the RasterStack", "time to schedule first plot event", "time interval between plot events", 
             "time to schedule first save event", "time interval between save events", 
             "should the module result be cached for future use")), row.names = c(NA, 
             -9L), class = "data.frame"), inputObjects = structure(list(objectName = NA_character_, 
                 objectClass = NA_character_, desc = NA_character_, sourceURL = NA_character_, 
                 other = list(NA_character_)), class = "data.frame", row.names = c(NA, 
             -1L)), outputObjects = structure(list(objectName = "landscape", objectClass = "RasterStack", 
                 desc = NA_character_, other = list(NA_character_)), class = "data.frame", row.names = c(NA, 
             -1L))), fireSpread = new(".moduleDeps", name = "fireSpread", description = "Simulate fire ignition and spread on a landscape, where spread probability varies according to percent pine. Fire size statistics are collected immediately after each burn event. Requires a global simulation parameter `stackName` be set.", 
             keywords = c("fire", "percolation model", "spread algorithm"), childModules = character(0), 
             authors = structure(list(list(given = c("Alex", "M"), family = "Chubaty", 
                 role = c("aut", "cre"), email = "alexander.chubaty@canada.ca", comment = NULL), 
                 list(given = c("Eliot", "J", "B"), family = "McIntire", role = c("aut", 
                 "cre"), email = "eliot.mcintire@canada.ca", comment = NULL), list(given = "Steve", 
                     family = "Cumming", role = "aut", email = "Steve.Cumming@sbf.ulaval.ca", 
                     comment = NULL)), class = "person"), version = structure(list(c(1L, 
             6L, 0L)), class = "numeric_version"), spatialExtent = new("Extent", xmin = NA_real_, 
                 xmax = NA_real_, ymin = NA_real_, ymax = NA_real_), timeframe = structure(list(
                 sec = c(NA_real_, NA_real_), min = c(NA_integer_, NA_integer_), hour = c(NA_integer_, 
                 NA_integer_), mday = c(NA_integer_, NA_integer_), mon = c(NA_integer_, 
                 NA_integer_), year = c(NA_integer_, NA_integer_), wday = c(NA_integer_, 
                 NA_integer_), yday = c(NA_integer_, NA_integer_), isdst = c(-1L, -1L), 
                 zone = c("", ""), gmtoff = c(NA_integer_, NA_integer_)), class = c("POSIXlt", 
             "POSIXt"), tzone = c("GB", "GMT", "BST")), timeunit = "year", citation = list(), 
             documentation = list(), reqdPkgs = list("methods", "raster", "RColorBrewer", 
                 "SpaDES.tools"), parameters = structure(list(paramName = c("stackName", 
             "nFires", "its", "persistprob", "returnInterval", "spreadprob", "startTime", 
             ".plotInitialTime", ".plotInterval", ".saveInitialTime", ".saveInterval"), 
                 paramClass = c("character", "numeric", "numeric", "numeric", "numeric", 
                 "numeric", "numeric", "numeric", "numeric", "numeric", "numeric"), default = structure(list(
                     "landscape", 10L, 1e+06, 0, 1, 0.225, structure(1, unit = "year"), 
                     structure(0, unit = "year"), 1, NA_real_, NA_real_), class = "AsIs"), 
                 min = structure(list(NA, 1L, 1e+06, 0, 1, 0.05, 0, structure(0, unit = "year"), 
                     1, NA, NA), class = "AsIs"), max = structure(list(NA, 100L, 1e+06, 
                     1, 1, 0.5, structure(0, unit = "year"), structure(1, unit = "year"), 
                     1, NA, NA), class = "AsIs"), paramDesc = c("name of the RasterStack", 
                 "number of fires to initiate", "number of iterations for fire spread", 
                 "probability of fire persisting in a pixel", "fire return interval", 
                 "probability of fire spreading into a pixel", "time of initial fire ignition", 
                 "time to schedule first plot event", "time interval between plot events", 
                 "time to schedule first save event", "time interval between save events"
                 )), row.names = c(NA, -11L), class = "data.frame"), inputObjects = structure(list(
                 objectName = c("landscape", "npixelsburned"), objectClass = c("RasterStack", 
                 "numeric"), desc = c(NA_character_, NA_character_), sourceURL = c(NA_character_, 
                 NA_character_)), class = "data.frame", row.names = c(NA, -2L)), outputObjects = structure(list(
                 objectName = c("landscape", "npixelsburned"), objectClass = c("RasterStack", 
                 "numeric"), desc = c(NA_character_, NA_character_), other = list(NA_character_, 
                     NA_character_)), class = "data.frame", row.names = c(NA, -2L))))), 
         simtimes = list(current = structure(0, unit = "second"), start = structure(0, unit = "second"), 
             end = structure(0, unit = "second"), timeunit = "year"), inputs = structure(list(
             file = character(0), fun = character(0), package = character(0), objectName = character(0), 
             loadTime = numeric(0), loaded = logical(0), arguments = structure(list(), class = "AsIs"), 
             intervals = numeric(0)), class = "data.frame", row.names = integer(0)), outputs = structure(list(
             file = character(0), fun = character(0), package = character(0), objectName = character(0), 
             saveTime = numeric(0), saved = logical(0), arguments = structure(list(), class = "AsIs")), class = "data.frame", row.names = integer(0)), 
         paths = list(cachePath = "/tmp/RtmpZEaa0J/cache", inputPath = "/tmp/RtmpZEaa0J/oMpSW2", 
             modulePath = "/home/ripley/R/Lib32/SpaDES.core/sampleModules", outputPath = "/tmp/RtmpZEaa0J/oMpSW2"), 
         .envir = <environment>, .xData = <environment>)), debug = quote(FALSE), progress = quote(NA), 
         .plotInitialTime = quote(NA), .saveInitialTime = quote(NULL), omitArgs = quote("notOlderThan"), 
         notOlderThan = quote(NULL))
  7: standardGeneric("Cache")
  8: eval(mc, env)
  9: eval(mc, env)
  10: Cache(FUN = FUN, ..., notOlderThan = notOlderThan, omitArgs = omitArgs)
  11: FUN(...)
  12: FUN(...)
  13: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  14: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  15: eval(fnCallAsExpr)
  16: eval(fnCallAsExpr)
  17: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  18: Init(sim)
  19: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  20: stop("The 'RandomFields' package is required but not installed.")
  
  Failed with error:  'there is no package called 'RandomFields''
  ── 17. Error: simInitAndSpades (@test-simulation.R#867)  ───────────────────────
  The 'RandomFields' package is required but not installed.
  1: simInitAndSpades(times = times, params = params, modules = modules, objects = list(), 
         paths = paths, debug = FALSE) at testthat/test-simulation.R:867
  2: do.call(spades, objsSpades)
  3: (new("nonstandardGenericFunction", .Data = function (sim, debug = getOption("spades.debug"), 
         progress = NA, cache, .plotInitialTime = NULL, .saveInitialTime = NULL, notOlderThan = NULL, 
         ...) 
     {
         standardGeneric("spades")
     }, generic = structure("spades", package = "SpaDES.core"), package = "SpaDES.core", 
         group = list(), valueClass = character(0), signature = c("sim", "debug", "progress", 
         "cache", ".plotInitialTime", ".saveInitialTime", "notOlderThan"), default = NULL, 
         skeleton = (function (sim, debug = getOption("spades.debug"), progress = NA, 
             cache, .plotInitialTime = NULL, .saveInitialTime = NULL, notOlderThan = NULL, 
             ...) 
         stop("invalid call in method dispatch to 'spades' (no default method)", domain = NA))(sim, 
             debug, progress, cache, .plotInitialTime, .saveInitialTime, notOlderThan, 
             ...)))(sim = sim, debug = FALSE, progress = , cache = , .plotInitialTime = , 
         .saveInitialTime = , notOlderThan = )
  4: (new("nonstandardGenericFunction", .Data = function (sim, debug = getOption("spades.debug"), 
         progress = NA, cache, .plotInitialTime = NULL, .saveInitialTime = NULL, notOlderThan = NULL, 
         ...) 
     {
         standardGeneric("spades")
     }, generic = structure("spades", package = "SpaDES.core"), package = "SpaDES.core", 
         group = list(), valueClass = character(0), signature = c("sim", "debug", "progress", 
         "cache", ".plotInitialTime", ".saveInitialTime", "notOlderThan"), default = NULL, 
         skeleton = (function (sim, debug = getOption("spades.debug"), progress = NA, 
             cache, .plotInitialTime = NULL, .saveInitialTime = NULL, notOlderThan = NULL, 
             ...) 
         stop("invalid call in method dispatch to 'spades' (no default method)", domain = NA))(sim, 
             debug, progress, cache, .plotInitialTime, .saveInitialTime, notOlderThan, 
             ...)))(sim = sim, debug = FALSE, progress = , cache = , .plotInitialTime = , 
         .saveInitialTime = , notOlderThan = )
  5: doEvent(sim, debug = debug, notOlderThan = notOlderThan)
  6: .runEvent(sim, cacheIt, debug, moduleCall, fnEnv, cur, notOlderThan)
  7: eval(fnCallAsExpr)
  8: eval(fnCallAsExpr)
  9: get(moduleCall, envir = fnEnv)(sim, cur[["eventTime"]], cur[["eventType"]])
  10: Init(sim)
  11: gaussMap(template, scale = 300, var = 0.03, speedup = speedup, inMemory = inMemory)
  12: stop("The 'RandomFields' package is required but not installed.")
  
    Using cached copy of .inputObjects event in child6 module.   
    Using memoised copy of .inputObjects event in child6 module
    Using memoised copy of .inputObjects event in child6 module
  ══ testthat results  ═══════════════════════════════════════════════════════════
  OK: 336 SKIPPED: 32 FAILED: 17
  1. Error: test cache (@test-cache.R#32) 
  2. Error: test event-level cache (@test-cache.R#83) 
  3. Error: test module-level cache (@test-cache.R#131) 
  4. Error: test checkpointing (@test-checkpoint.R#24) 
  5. Error: test checkpointing with disk-backed raster (@test-checkpoint.R#85) 
  6. Error: simulation runs with simInit and spades (@test-conditionalEvents.R#74) 
  7. Error: experiment does not work correctly (@test-experiment.R#33) 
  8. Error: test-load.R: loading inputs does not work correctly (@test-load.R#36) 
  9. Error: test-load.R: passing arguments to filelist in simInit does not work correctly (@test-load.R#164) 
  1. ...
  
  Error: testthat unit tests failed
  Execution halted