Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class StackTest < Test::Unit::TestCase
- test "new stack should have 0 elements" do
- assert_equal nil, Stack.new.size
- end
- test "new stack tail should be nil" do
- assert_equal nil, Stack.new.tail
- end
- test "after push, stack should have one element" do
- stack = Stack.new
- stack.push 1
- assert_equal 1, stack.size
- end
- test "after pushing 'foo', stack pop should return 'foo'" do
- stack = Stack.new
- stack.push 'foo'
- assert_equal 'foo', stack.pop
- end
- end
- class Stack
- def initialize
- @items = []
- @size = 0
- end
- def size
- @size
- end
- def push(item)
- @items << item
- @size += 1
- end
- def tail
- @size == 0 ? nil : @items[@size - 1]
- end
- def pop
- raise RuntimeError if @size == 0
- @items[@size - 1] = nil
- @size -= 1
- end
- end
Add Comment
Please, Sign In to add comment