test_that("async_map", {
list <- structure(as.list(1:10), names = letters[1:10])
fun <- async(function(x) {
force(x)
delay(1/100)$then(function(value) x * 2)
})
result <- synchronise(async_map(list, fun))
expect_identical(result, as.list(unlist(list) * 2))
})
test_that("async_map with limit", {
list <- structure(as.list(1:10), names = letters[1:10])
fun <- function(x) {
force(x)
delay(1/10000)$then(function(value) x * 2)
}
for (l in 1:10) {
result <- synchronise(async_map(list, fun, .limit = l))
expect_identical(result, as.list(unlist(list) * 2))
}
})
test_that("async_map with limit, error", {
list <- structure(as.list(1:10), names = letters[1:10])
fun <- async(function(x) {
force(x)
delay(1/10000)$then(function() if (x == 7) stop("oops") else x * 2)
})
for (l in c(1:10, Inf)) {
expect_error(synchronise(async_map(list, fun, .limit = l)), "oops")
}
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.