Nothing
# Unit tests for which.max and related functions
test_that("which.max", {
fn <- function(a) {
declare(type(a = double(NA)))
out <- which.max(a)
out
}
expect_snapshot(r2f(fn))
qfn <- quick(fn)
x = sample.int(1000) + runif(1000)
expect_identical(fn(x), qfn(x))
# bench::mark(fn(x), {anyNA(x); qfn(x)}) -> r; print(r); plot(r);
# qfn(-c(1, 2, 3, 2, 1))
# fn(-c(1, 2, 3, 2, 1))
# ---------------------
# now with logical
fn <- function(a) {
declare(type(a = logical(NA)))
out <- which.max(a)
out
}
expect_snapshot(r2f(fn))
x <- logical(1000)
x[500] <- TRUE
qfn <- quick(fn)
expect_identical(fn(x), qfn(x))
})
# qfn_find_loc_int <- quick("fn", fn)
# qfn_find_loc_lgl <- quick("fn", fn)
#
#
# bench::mark(fn(x), {anyNA(x); qfn(x)}) -> r; print(r); plot(r);
# bench::mark(fn(x), qfn(x)) -> r; print(r); plot(r);
# bench::mark(qfn_find_loc_int(x), qfn_find_loc_lgl(x)) -> r; print(r); plot(r);
# })
test_that("which.max/which.min", {
fn <- function(lgl1, int1, dbl1) {
declare(type(lgl1 = logical(NA)))
declare(type(int1 = integer(NA)))
declare(type(dbl1 = double(NA)))
out <- c(
which.min(lgl1),
which.min(int1),
which.min(dbl1),
which.max(lgl1),
which.max(int1),
which.max(dbl1),
which.max(dbl1[dbl1 < 0])
)
out
}
r2f(fn)
# qfn := quick(fn)
#
# lgl1 = sample(c(TRUE, FALSE), 111, TRUE)
# int1 = sample.int(222)
# dbl1 = runif (333, -1, 1)
#
# # expect_equal(
# bench::mark(relative=T,
# qfn(lgl1, int1, dbl1),
# fn(lgl1, int1, dbl1)
# )
expect_translation_snapshots(fn)
expect_quick_identical(
fn,
list(
lgl1 = sample(c(TRUE, FALSE), 10, TRUE),
int1 = sample.int(100),
dbl1 = runif(100, -1, 1)
)
)
})
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.