Nothing
test_that("method: addition", {
on.exit({
options("filearray.operator.precision" = NULL)
clear_cache()
})
dm <- c(2,3,4, 10)
len <- prod(dm)
x_dbl <- array(rnorm(len), dim = dm)
x_int <- array(seq_len(len), dim = dm)
x_lgl <- x_dbl > 0
arr_dbl <- as_filearray(x_dbl, type = "double", partition_size = 2)
arr_int <- as_filearray(x_int, type = "integer", partition_size = 3)
arr_lgl <- as_filearray(x_lgl, type = "logical", partition_size = 4)
proxy_dbl <- as_filearrayproxy(arr_dbl)
proxy_int <- as_filearrayproxy(arr_int)
proxy_lgl <- as_filearrayproxy(arr_lgl)
# sanity
expect_equal(arr_dbl[dimnames = NULL], x_dbl, tolerance = 1e-5)
expect_equal(arr_int[dimnames = NULL], x_int)
expect_equal(arr_lgl[dimnames = NULL], x_lgl)
expect_equal(proxy_dbl[dimnames = NULL], x_dbl, tolerance = 1e-5)
expect_equal(proxy_int[dimnames = NULL], x_int)
expect_equal(proxy_lgl[dimnames = NULL], x_lgl)
check_add <- function(e1, e2, d1, d2, type, tolerance = .Machine$double.eps) {
y <- e1+e2
res <- y[dimnames = NULL]
if(!missing(type)) {
expect_identical(typeof(y), type)
}
expect_equal(res, d1 + d2, tolerance = tolerance)
}
options("filearray.operator.precision" = "double")
# filearrayproxy - Double
check_add(proxy_dbl, proxy_dbl, x_dbl, x_dbl, "double", 1e-5)
check_add(proxy_dbl, proxy_int, x_dbl, x_int, "double", 1e-5)
check_add(proxy_dbl, proxy_lgl, x_dbl, x_lgl, "double", 1e-5)
check_add(proxy_dbl, arr_dbl, x_dbl, x_dbl, "double", 1e-5)
check_add(proxy_dbl, arr_int, x_dbl, x_int, "double", 1e-5)
check_add(proxy_dbl, arr_lgl, x_dbl, x_lgl, "double", 1e-5)
check_add(proxy_dbl, 1.0, x_dbl, 1.0, "double", 1e-5)
check_add(proxy_dbl, 1L, x_dbl, 1L, "double", 1e-5)
check_add(proxy_dbl, TRUE, x_dbl, TRUE, "double", 1e-5)
# filearrayproxy - Int
check_add(proxy_int, proxy_dbl, x_int, x_dbl, "double", 1e-5)
check_add(proxy_int, proxy_int, x_int, x_int, "integer", 1e-5)
check_add(proxy_int, proxy_lgl, x_int, x_lgl, "integer", 1e-5)
check_add(proxy_int, arr_dbl, x_int, x_dbl, "double", 1e-5)
check_add(proxy_int, arr_int, x_int, x_int, "integer", 1e-5)
check_add(proxy_int, arr_lgl, x_int, x_lgl, "integer", 1e-5)
check_add(proxy_int, 1.0, x_int, 1.0, "double", 1e-5)
check_add(proxy_int, 1L, x_int, 1L, "integer", 1e-5)
check_add(proxy_int, TRUE, x_int, TRUE, "integer", 1e-5)
# filearrayproxy - Logical
check_add(proxy_lgl, proxy_dbl, x_lgl, x_dbl, "double", 1e-5)
check_add(proxy_lgl, proxy_int, x_lgl, x_int, "integer", 1e-5)
check_add(proxy_lgl, proxy_lgl, x_lgl, x_lgl, "integer", 1e-5)
check_add(proxy_lgl, arr_dbl, x_lgl, x_dbl, "double", 1e-5)
check_add(proxy_lgl, arr_int, x_lgl, x_int, "integer", 1e-5)
check_add(proxy_lgl, arr_lgl, x_lgl, x_lgl, "integer", 1e-5)
check_add(proxy_lgl, 1.0, x_lgl, 1.0, "double", 1e-5)
check_add(proxy_lgl, 1L, x_lgl, 1L, "integer", 1e-5)
check_add(proxy_lgl, TRUE, x_lgl, TRUE, "integer", 1e-5)
# filearray - Double
check_add(arr_dbl, proxy_dbl, x_dbl, x_dbl, "double", 1e-5)
check_add(arr_dbl, proxy_int, x_dbl, x_int, "double", 1e-5)
check_add(arr_dbl, proxy_lgl, x_dbl, x_lgl, "double", 1e-5)
check_add(arr_dbl, arr_dbl, x_dbl, x_dbl, "double", 1e-5)
check_add(arr_dbl, arr_int, x_dbl, x_int, "double", 1e-5)
check_add(arr_dbl, arr_lgl, x_dbl, x_lgl, "double", 1e-5)
check_add(arr_dbl, 1.0, x_dbl, 1.0, "double", 1e-5)
check_add(arr_dbl, 1L, x_dbl, 1L, "double", 1e-5)
check_add(arr_dbl, TRUE, x_dbl, TRUE, "double", 1e-5)
# filearray - Int
check_add(arr_int, proxy_dbl, x_int, x_dbl, "double", 1e-5)
check_add(arr_int, proxy_int, x_int, x_int, "integer", 1e-5)
check_add(arr_int, proxy_lgl, x_int, x_lgl, "integer", 1e-5)
check_add(arr_int, arr_dbl, x_int, x_dbl, "double", 1e-5)
check_add(arr_int, arr_int, x_int, x_int, "integer", 1e-5)
check_add(arr_int, arr_lgl, x_int, x_lgl, "integer", 1e-5)
check_add(arr_int, 1.0, x_int, 1.0, "double", 1e-5)
check_add(arr_int, 1L, x_int, 1L, "integer", 1e-5)
check_add(arr_int, TRUE, x_int, TRUE, "integer", 1e-5)
# filearray - Logical
check_add(arr_lgl, proxy_dbl, x_lgl, x_dbl, "double", 1e-5)
check_add(arr_lgl, proxy_int, x_lgl, x_int, "integer", 1e-5)
check_add(arr_lgl, proxy_lgl, x_lgl, x_lgl, "integer", 1e-5)
check_add(arr_lgl, arr_dbl, x_lgl, x_dbl, "double", 1e-5)
check_add(arr_lgl, arr_int, x_lgl, x_int, "integer", 1e-5)
check_add(arr_lgl, arr_lgl, x_lgl, x_lgl, "integer", 1e-5)
check_add(arr_lgl, 1.0, x_lgl, 1.0, "double", 1e-5)
check_add(arr_lgl, 1L, x_lgl, 1L, "integer", 1e-5)
check_add(arr_lgl, TRUE, x_lgl, TRUE, "integer", 1e-5)
# scalar - double
check_add(1.0, proxy_dbl, 1.0, x_dbl, "double", 1e-5)
check_add(1.0, proxy_int, 1.0, x_int, "double", 1e-5)
check_add(1.0, proxy_lgl, 1.0, x_lgl, "double", 1e-5)
check_add(1.0, arr_dbl, 1.0, x_dbl, "double", 1e-5)
check_add(1.0, arr_int, 1.0, x_int, "double", 1e-5)
check_add(1.0, arr_lgl, 1.0, x_lgl, "double", 1e-5)
# scalar - int
check_add(1L, proxy_dbl, 1L, x_dbl, "double", 1e-5)
check_add(1L, proxy_int, 1L, x_int, "integer", 1e-5)
check_add(1L, proxy_lgl, 1L, x_lgl, "integer", 1e-5)
check_add(1L, arr_dbl, 1L, x_dbl, "double", 1e-5)
check_add(1L, arr_int, 1L, x_int, "integer", 1e-5)
check_add(1L, arr_lgl, 1L, x_lgl, "integer", 1e-5)
# scalar - lgl
check_add(FALSE, proxy_dbl, FALSE, x_dbl, "double", 1e-5)
check_add(FALSE, proxy_int, FALSE, x_int, "integer", 1e-5)
check_add(FALSE, proxy_lgl, FALSE, x_lgl, "integer", 1e-5)
check_add(FALSE, arr_dbl, FALSE, x_dbl, "double", 1e-5)
check_add(FALSE, arr_int, FALSE, x_int, "integer", 1e-5)
check_add(FALSE, arr_lgl, FALSE, x_lgl, "integer", 1e-5)
# wrong dimensions
testthat::expect_error(arr_int + array(0L, c(10,20,1)))
testthat::expect_error(arr_int + 1:10)
tmp <- arr_int[]
dm <- dim(arr_int)
dm <- c(dm[1] * dm[2], dm[-c(1,2)])
dim(tmp) <- dm
tmp_arr <- as_filearray(tmp)
testthat::expect_error( arr_int + tmp )
testthat::expect_error( tmp + arr_int )
testthat::expect_error( arr_int + tmp_arr )
testthat::expect_error( tmp_arr + arr_int )
testthat::expect_equal(
(arr_int + 1:length(arr_int))[dimnames = NULL],
arr_int[dimnames = NULL] + 1:length(arr_int)
)
testthat::expect_equal(
(1:length(arr_int) + arr_int)[dimnames = NULL],
1:length(arr_int) + arr_int[dimnames = NULL]
)
})
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.