Nothing
source("incl/start.R")
options(future.debug = FALSE)
message("*** Relaying of standard output and conditions ...")
strategies <- supportedStrategies()
for (ss in seq_along(strategies)) {
strategy <- strategies[[ss]]
message(sprintf("Relaying w/ %s ...", names(strategies)[ss]))
plan(strategy)
message("* A single future ...")
for (exclude in list(NULL, "message", "warning")) {
if (is.null(exclude)) {
msgs_truth <- c("M\n", "W")
} else if (exclude == "message") {
msgs_truth <- c("W")
} else if (exclude == "warning") {
msgs_truth <- c("M\n")
}
message("- creating future")
relay <- recordRelay({
f <- future({
cat("O\n")
message("M")
warning("W")
1L
}, conditions = structure("condition", exclude = exclude))
})
message(" class: ", paste(sQuote(class(f)), collapse = ", "))
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- checking if resolved")
relay <- recordRelay({
r <- resolved(f)
})
message(" result: ", r)
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- resolve w/ collecting results")
relay <- recordRelay({
f <- resolve(f, result = TRUE)
})
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- resolve w/out collecting results")
relay <- recordRelay({
f <- resolve(f, result = FALSE)
})
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- getting value")
relay <- recordRelay({
v <- value(f)
})
message(" value: ", v)
stopifnot(identical(relay$stdout, "O\n"))
stopifnot(identical(relay$msgs, msgs_truth))
message("- getting value again")
relay <- recordRelay({
v <- value(f)
})
message(" value: ", v)
stopifnot(identical(relay$stdout, "O\n"))
stopifnot(identical(relay$msgs, msgs_truth))
} ## for (exclude ...)
message("* A single future ... DONE")
message("* Two futures ... ")
message("- list of two futures")
fs <- list()
relay <- recordRelay({
fs[[1]] <- future({ cat("O1\n"); message("M1"); 1L })
fs[[2]] <- future({ cat("O2\n"); message("M2"); 2L })
})
message(" class: ", paste(sQuote(class(fs[[1]])), collapse = ", "))
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- check if resolved")
relay <- recordRelay({
rs <- resolved(fs)
})
message(" result: ", paste(rs, collapse = ", "))
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- resolve w/ collecting results")
relay <- recordRelay({
fs <- resolve(fs, result = FALSE)
})
str(relay)
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- resolve w/out collecting results")
relay <- recordRelay({
fs <- resolve(fs, result = TRUE)
})
str(relay)
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- getting value")
relay <- recordRelay({
vs <- value(fs)
})
message(" values: ", paste(vs, collapse = ", "))
str(relay)
stopifnot(identical(relay$stdout, c("O1\n", "O2\n")))
stopifnot(identical(relay$msgs, c("M1\n", "M2\n")))
message("- getting value again")
relay <- recordRelay({
vs <- value(fs)
})
message(" values: ", paste(vs, collapse = ", "))
str(relay)
stopifnot(identical(relay$stdout, c("O1\n", "O2\n")))
stopifnot(identical(relay$msgs, c("M1\n", "M2\n")))
message("* Two futures ... DONE")
message("* Two futures - out of order ... ")
message("- list of two futures")
fs <- list()
relay <- recordRelay({
fs[[1]] <- future({ cat("O1\n"); Sys.sleep(1); message("M1"); 1L })
fs[[2]] <- future({ cat("O2\n"); message("M2"); 2L })
})
message(" class: ", paste(sQuote(class(fs[[1]])), collapse = ", "))
stopifnot(length(relay$stdout) == 0L)
stopifnot(length(relay$msgs) == 0L)
message("- getting value")
relay <- recordRelay({
vs <- value(fs)
})
message(" values: ", paste(vs, collapse = ", "))
str(relay)
stopifnot(identical(relay$stdout, c("O1\n", "O2\n")))
stopifnot(identical(relay$msgs, c("M1\n", "M2\n")))
message("- getting value again")
relay <- recordRelay({
vs <- value(fs)
})
message(" values: ", paste(vs, collapse = ", "))
str(relay)
stopifnot(identical(relay$stdout, c("O1\n", "O2\n")))
stopifnot(identical(relay$msgs, c("M1\n", "M2\n")))
message("* Two futures - out of order ... DONE")
message("- conditions = structure(\"condition\", drop = TRUE)")
f <- future(message("42"), conditions = structure("condition", drop = TRUE))
r <- result(f)
stopifnot(length(r$conditions) > 0L)
v <- value(f)
r <- result(f)
stopifnot(length(r$conditions) == 0L)
message(sprintf("Relaying w/ %s ... DONE", names(strategies)[ss]))
} ## for (ss ...)
message("*** Relaying of standard output and conditions ... 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.