context("cmd_interleave")
test_that("cmd_interleave", {
## Basic cases:
expect_equal(cmd_interleave("a", "b"), c("a", "b"))
expect_equal(cmd_interleave(c("a", "b"), c("c", "d")),
c("a", "c", "b", "d"))
expect_equal(cmd_interleave("a", list("b")), list("a", "b"))
expect_equal(cmd_interleave(c("a", "b"), list("c", "d")),
list("a", "c", "b", "d"))
expect_equal(cmd_interleave(list("a", "b"), list("c", "d")),
list("a", "c", "b", "d"))
## Things with raw vectors:
obj <- lapply(1:2, object_to_bin)
expect_equal(cmd_interleave(c("a", "b"), obj),
list("a", obj[[1]], "b", obj[[2]]))
expect_equal(cmd_interleave("a", obj[[1]]),
list("a", obj[[1]]))
expect_equal(cmd_interleave(obj[[1]], obj[[2]]),
obj)
expect_equal(cmd_interleave(obj[[1]], "b"),
list(obj[[1]], "b"))
## Corner cases:
expect_equal(cmd_interleave(c(), c()), character(0))
expect_equal(cmd_interleave(list(), list()), list())
expect_equal(cmd_interleave(NULL, NULL), character(0))
## Conversions:
expect_equal(cmd_interleave("a", 1L), c("a", "1"))
expect_equal(cmd_interleave("a", 1.0), c("a", "1"))
expect_equal(cmd_interleave("a", TRUE), c("a", "1"))
## Error cases:
expect_error(cmd_interleave("a", c()), "b must be length 1")
expect_error(cmd_interleave(c(), "b"), "b must be length 0")
expect_error(cmd_interleave("a", sin), "cannot coerce type")
expect_error(cmd_interleave(c("a", "b"), "c"),
"b must be length 2")
## Raw is stored more like character so that length(raw) is more
## like nchar(string).
expect_error(cmd_interleave(runif(length(obj[[1]])), obj[[1]]),
"b must be length")
expect_error(cmd_interleave(obj[[1]], runif(length(obj[[1]]))),
"b must be length")
## 3 arg:
expect_equal(cmd_interleave("a", "b", "c"), c("a", "b", "c"))
expect_equal(cmd_interleave("a", "b", NULL), c("a", "b"))
expect_equal(cmd_interleave(NULL, NULL, NULL), character(0))
expect_equal(cmd_interleave("a", 1, pi), c("a", 1, pi))
expect_equal(cmd_interleave("a", raw(4), pi),
list("a", raw(4), as.character(pi)))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.