context("running window tests")
test_that("rate limited function is always in compliance", {
if(require("microbenchmark", quietly = TRUE)) {
f <- limit_rate(microbenchmark::get_nanotime, rate(n = 5, period = .03))
res <- replicate(100, f())
lagged_res <- c(rep(NA, 6), res[seq_len(94)])
times <- (res - lagged_res) / 1E9
expect_gt(min(times, na.rm = TRUE), .03)
}
})
test_that("no failures in a long window", {
skip_on_cran()
iter <- 10000
n <- 5
period <- .03
f <- limit_rate(microbenchmark::get_nanotime, rate(n = n, period = period))
res <- replicate(iter, f())
lagged_res <- c(rep(NA, n + 1), res[seq_len(iter - (n + 1))])
times <- (res - lagged_res) / 1E9
expect_gt(min(times, na.rm = TRUE), .03)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.