Files
shiny/inst/tests/test-stack.R
2014-08-28 19:14:15 -05:00

41 lines
933 B
R

context("Stack")
test_that("Basic operations", {
s <- Stack$new()
expect_identical(s$size(), 0L)
s$push(5)$push(6)$push(NULL)$push(list(a=1,b=2))
expect_identical(s$pop(), list(a=1,b=2))
expect_identical(s$peek(), NULL)
expect_identical(s$pop(), NULL)
expect_identical(s$size(), 2L)
# as_list() returns in the order that they were inserted
expect_identical(s$as_list(), list(5, 6))
})
test_that("Pushing multiple", {
s <- Stack$new()
s$push(1,2,3)
s$push(4,5, .list=list(6,list(7,8)))
s$push(9,10)
expect_identical(s$as_list(), list(1,2,3,4,5,6,list(7,8),9,10))
expect_identical(s$pop(), 10)
expect_identical(s$pop(), 9)
expect_identical(s$pop(), list(7,8))
})
test_that("Popping from empty stack", {
s <- Stack$new()
expect_null(s$pop())
expect_null(s$pop())
expect_null(s$peek())
expect_identical(s$size(), 0L)
s$push(5)$push(6)
expect_identical(s$as_list(), list(5, 6))
})