Nothing
source("incl/start.R")
message("*** %<-% ...")
for (cores in 1:availCores) {
## Speed up CRAN checks: Skip on CRAN Windows 32-bit
if (!fullTest && isWin32) next
message(sprintf("Testing with %d cores ...", cores))
options(mc.cores = cores)
for (strategy in supportedStrategies(cores)) {
message(sprintf("*** %%<-%% with %s futures ...", sQuote(strategy)))
plan(strategy)
rm(list = intersect(c("x", "y"), ls()))
message("** Future evaluation without globals")
v1 %<-% { x <- 1 }
stopifnot(!exists("x", inherits = FALSE), identical(v1, 1))
message("** Future evaluation with globals")
a <- 2
v2 %<-% { x <- a }
stopifnot(!exists("x", inherits = FALSE), identical(v2, a))
message("** Future evaluation with errors")
v3 %<-% {
x <- 3
stop("Woops!")
x
}
stopifnot(!exists("x", inherits = FALSE))
res <- tryCatch(identical(v3, 3), error = identity)
stopifnot(inherits(res, "error"))
y <- listenv::listenv()
for (ii in 1:3) {
y[[ii]] %<-% {
if (ii %% 2 == 0) stop("Woops!")
ii
}
}
res <- tryCatch(as.list(y), error = identity)
stopifnot(inherits(res, "error"))
z <- y[c(1, 3)]
z <- unlist(z)
stopifnot(all(z == c(1, 3)))
res <- tryCatch(y[[2]], error = identity)
stopifnot(inherits(res, "error"))
res <- tryCatch(y[1:2], error = identity)
stopifnot(inherits(res, "error"))
message("** Future evaluation with a poor-man's \"progress bar\"")
v4 %<-% {
cat("Processing: ")
for (ii in 1:10) { cat(".") }
cat(" [100%]\n")
4
}
message("** Collecting results")
printf("v1 = %s\n", v1)
stopifnot(v1 == 1)
printf("v2 = %s\n", v2)
stopifnot(v2 == a)
stopifnot(tryCatch({
printf("v3 = %s\n", v3)
}, error = function(ex) {
printf("v3: <%s> (as expect)\n", class(ex)[1])
TRUE
}))
printf("v4 = %s\n", v4)
#stopifnot(v4 == 4)
message("** Left-to-right and right-to-left future assignments")
c %<-% 1
printf("c = %s\n", c)
1 %->% d
printf("d = %s\n", d)
stopifnot(d == c)
message("** Nested future assignments")
a %<-% {
b <- 1
c %<-% 2
3 -> d
4 %->% e
b + c + d + e
}
printf("a = %s\n", a)
stopifnot(a == 10)
{ a + 1 } %->% b
printf("b = %s\n", b)
stopifnot(b == a + 1)
message(sprintf("*** %%<-%% with %s futures ... DONE", sQuote(strategy)))
} # for (strategy in ...)
message(sprintf("Testing with %d cores ... DONE", cores))
} ## for (cores ...)
message("*** %<-% ... DONE")
source("incl/end.R")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.