Guest User

Untitled

a guest
Jul 18th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. class StackTest < Test::Unit::TestCase
  2. test "new stack should have 0 elements" do
  3. assert_equal nil, Stack.new.size
  4. end
  5.  
  6. test "new stack tail should be nil" do
  7. assert_equal nil, Stack.new.tail
  8. end
  9.  
  10. test "after push, stack should have one element" do
  11. stack = Stack.new
  12. stack.push 1
  13. assert_equal 1, stack.size
  14. end
  15.  
  16. test "after pushing 'foo', stack pop should return 'foo'" do
  17. stack = Stack.new
  18. stack.push 'foo'
  19. assert_equal 'foo', stack.pop
  20. end
  21. end
  22.  
  23. class Stack
  24. def initialize
  25. @items = []
  26. @size = 0
  27. end
  28.  
  29. def size
  30. @size
  31. end
  32.  
  33. def push(item)
  34. @items << item
  35. @size += 1
  36. end
  37.  
  38. def tail
  39. @size == 0 ? nil : @items[@size - 1]
  40. end
  41.  
  42. def pop
  43. raise RuntimeError if @size == 0
  44. @items[@size - 1] = nil
  45. @size -= 1
  46. end
  47. end
Add Comment
Please, Sign In to add comment