Nothing
context("shift_array")
f <- function(...){
dim <- c(10,12,30,1)
x <- array(rnorm(prod(dim)), dim)
shifts <- sample(dim[3], dim[1])
shifts[1] <- NA
f1 <- function(){
dipsaus::shift_array(x, 3, 1, shifts)
}
f2 <- function(){
tm <- seq_len(dim[3])
re <- sapply(seq_len(dim[1]), function(ii){
shift <- shifts[ii]
new_idx <- tm + shift
new_idx[new_idx > dim[3]] <- NA
x[ii,,new_idx,]
})
dim(re) <- c(dim(x)[-1], dim[1])
re <- aperm(re, c(4,1,2,3))
re
}
rg <- range(f2()-f1(), na.rm = TRUE)
expect_equivalent(rg, c(0,0))
}
test_that('testing shift_array correctness', {
capture_output({
lapply(1:5, f)
dim <- c(10,12,30,1)
x <- array(rnorm(prod(dim)), dim)
shifts <- sample(dim[3], dim[1])
shifts[1] <- NA
expect_error({
dipsaus::shift_array(x, 3, 3, shifts)
})
expect_error({
dipsaus::shift_array(x, 3, 0, shifts)
})
expect_error({
dipsaus::shift_array(x, 3, -1, shifts)
})
expect_error({
dipsaus::shift_array(x, 3, 5, shifts)
})
expect_error({
dipsaus::shift_array(x, 0, 1, shifts)
})
expect_error({
dipsaus::shift_array(x, -1, 1, shifts)
})
expect_error({
dipsaus::shift_array(x, 5, 1, shifts)
})
})
})
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.