Nothing
test_that("i_enumerate over numeric vector", {
set.seed(42)
x <- rnorm(5)
it <- i_enumerate(x)
i <- nextOr(it, NA)
expect_equal(i$index, 1)
expect_equal(i$value, x[1])
i <- nextOr(it, NA)
expect_equal(i$index, 2)
expect_equal(i$value, x[2])
i <- nextOr(it, NA)
expect_equal(i$index, 3)
expect_equal(i$value, x[3])
i <- nextOr(it, NA)
expect_equal(i$index, 4)
expect_equal(i$value, x[4])
i <- nextOr(it, NA)
expect_equal(i$index, 5)
expect_equal(i$value, x[5])
expect_equal(nextOr(it, NA), NA)
})
test_that("i_enumerate chunks", {
expected <- do.call(rbind, as.list(
i_apply(i_enumerate(seq(1, 1000, by=3)),
as.data.frame)))
actual <- do.call(rbind, as.list(
i_apply(i_enumerate(seq(1, 1000, by=3), chunkSize=5),
as.data.frame)))
expect_equal(expected, actual)
actual2 <- do.call(rbind, as.list(
i_apply(i_enumerate(seq(1, 1000, by=3), chunks=12),
as.data.frame)))
expect_equal(expected, actual2)
})
test_that("i_enum over numeric vector", {
set.seed(42)
x <- rnorm(5)
it <- i_enum(x)
i <- nextOr(it, NA)
expect_equal(i$index, 1)
expect_equal(i$value, x[1])
i <- nextOr(it, NA)
expect_equal(i$index, 2)
expect_equal(i$value, x[2])
i <- nextOr(it, NA)
expect_equal(i$index, 3)
expect_equal(i$value, x[3])
i <- nextOr(it, NA)
expect_equal(i$index, 4)
expect_equal(i$value, x[4])
i <- nextOr(it, NA)
expect_equal(i$index, 5)
expect_equal(i$value, x[5])
expect_equal(nextOr(it, NA), NA)
})
test_that("i_enumerate split array and rejoin", {
input <- array(1:24, c(2,3,4))
for (by in list(1, 2, 3, c(1, 2), c(2,3), c(1, 3), c(3, 1), c(3, 2))) {
slices <- as.list(i_enum(input, by=by))
out <- array(0, c(2, 3, 4))
ix <- alist( , , )
d <- dim(input)
d[by] <- 1
for (slice in slices) {
ix[by] <- slice$index
expect_equal(dim(slice$value), d)
out <- do.call(`[<-`, c(list(out), ix, list(slice$value)))
}
expect_equal(out, input)
}
for (by in list(1, 2, 3, c(1, 2), c(2,3), c(1, 3), c(3, 1), c(3, 2))) {
slices <- as.list(i_enum(input, by=by, drop=TRUE))
out <- array(0, c(2, 3, 4))
ix <- alist( , , )
d <- dim(input)
d <- d[-by]
for (slice in slices) {
ix[by] <- slice$index
if (length(d) > 1)
expect_equal(dim(slice$value), d)
else expect_equal(length(slice$value), d)
out <- do.call(`[<-`, c(list(out), ix, list(slice$value)))
}
expect_equal(out, input)
}
})
test_that("i_enumerate chunked vector", {
actual <- nextOr(i_enumerate(letters, chunks=4))
expected <- list(index=1:7, value=letters[1:7])
expect_equal(actual, expected)
})
test_that("i_enumerate chunked array", {
input <- array(1:504, c(7,8,9))
for (by in list(1, 2, 3, c(1, 2), c(2,3), c(1, 3), c(3, 1), c(3, 2))) {
slices <- as.list(i_enum(input, by=by, chunkSize=5))
out <- array(0, c(7, 8, 9))
ix_in <- alist( , , )
ix_out <- ix_in
d <- dim(input)
d[by] <- 1
for (slice in slices) {
d[by[1]] <- nrow(slice$index)
expect_equal(dim(slice$value), d)
for (i in seq_len(nrow(slice$index))) {
ix_in[by[1]] <- i
ix_out[by] <- slice$index[i,]
#cat(deparse(list(ix_in=ix_in, ix_out=ix_out)), "\n")
subslice <- do.call("[", c(list(slice$value), ix_in))
out <- do.call(`[<-`, c(list(out), ix_out, list(subslice)))
}
}
expect_equal(out, input)
}
})
test_that("i_enumerate over data.frame", {
it <- i_enumerate(iris)
i <- nextOr(it, NA)
expect_equal(i$index, 1)
expect_equal(i$value, iris[, 1])
i <- nextOr(it, NA)
expect_equal(i$index, 2)
expect_equal(i$value, iris[, 2])
i <- nextOr(it, NA)
expect_equal(i$index, 3)
expect_equal(i$value, iris[, 3])
i <- nextOr(it, NA)
expect_equal(i$index, 4)
expect_equal(i$value, iris[, 4])
i <- nextOr(it, NA)
expect_equal(i$index, 5)
expect_equal(i$value, iris[, 5])
expect_equal(nextOr(it, NA), NA)
})
test_that("i_enum over data.frame", {
it <- i_enum(iris)
i <- nextOr(it, NA)
expect_equal(i$index, 1)
expect_equal(i$value, iris[, 1])
i <- nextOr(it, NA)
expect_equal(i$index, 2)
expect_equal(i$value, iris[, 2])
i <- nextOr(it, NA)
expect_equal(i$index, 3)
expect_equal(i$value, iris[, 3])
i <- nextOr(it, NA)
expect_equal(i$index, 4)
expect_equal(i$value, iris[, 4])
i <- nextOr(it, NA)
expect_equal(i$index, 5)
expect_equal(i$value, iris[, 5])
expect_equal(nextOr(it, NA), NA)
})
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.