context("stack")
test_that("push, peek and pop", {
s <- stack()
s$push(1)$push(2)
expect_equal(s$size(), 2)
expect_equal(s$peek(), 2)
expect_equal(s$pop(), 2)
expect_equal(s$size(), 1)
s$push(3)
expect_equal(s$size(), 2)
expect_equal(s$peek(), 3)
expect_equal(s$pop(), 3)
expect_equal(s$peek(), 1)
expect_equal(s$pop(), 1)
expect_equal(s$size(), 0)
expect_error(s$pop(), "empty")
})
test_that("push, peek and pop with items", {
q <- stack(list(1, 3))
expect_equal(q$size(), 2)
expect_equal(q$peek(), 3)
expect_equal(q$pop(), 3)
expect_equal(q$peek(), 1)
expect_equal(q$pop(), 1)
expect_equal(q$size(), 0)
expect_error(q$peek(), "empty")
expect_error(q$pop(), "empty")
})
test_that("clear", {
s <- stack()
s$push("a")$push("b")$push("c")
s$clear()
expect_equal(s$size(), 0)
})
test_that("push NULL", {
q <- stack()
q$push(NULL)$push(NULL)
expect_null(q$pop())
expect_equal(q$size(), 1)
})
test_that("serialization", {
s <- stack()
s$push(1)$push(2)
s2 <- unserialize(serialize(s, NULL))
expect_equal(s2$size(), 2)
s2$push(3)
expect_equal(s2$size(), 3)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.