aboutsummaryrefslogtreecommitdiff
path: root/tests/stackStack.nim
blob: 9f3c1767f483426dec954e367ee21c5b54e0edf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import unittest

include ../src/stackStack

suite "StackStack":
  test "Pop":
    var empty = NewStackStack()
    check empty[].Pop() == 0
  test "Push":
    var empty = NewStackStack()
    empty[].Push(5)
    check empty[].Pop() == 5
  test "PopVector":
    var empty = NewStackStack()
    check empty[].PopVector() == (0, 0)
  test "PushVector":
    var empty = NewStackStack()
    empty[].PushVector((3, 2))
    check empty[].PopVector() == (3, 2)
  test "Clear":
    var empty = NewStackStack()
    empty[].Push(3)
    empty[].Clear()
    check empty[].Pop() == 0
  test "Duplicate":
    var empty = NewStackStack()
    empty[].Clear()
    check empty[].Pop() == 0
  test "Swap":
    var empty = NewStackStack()
    empty[].Swap()
    check empty[].Pop() == 0
  test "Begin":
    var empty = NewStackStack()
    empty[].Begin((1, 2))
    check empty.height == 2
    check empty[].Pop() == 0
    empty[].Push(5)
    empty[].Push(6)
    empty[].Push(4)
    empty[].Begin((3, 4))
    check empty.height == 3
    check empty[].Pop() == 6
    check empty[].Pop() == 5
    check empty[].Pop() == 0
    check empty[].Pop() == 0
    empty[].Push(7)
    empty[].Push(8)
    empty[].Push(9)
    empty[].Push(2)
    empty[].Begin((10, 11))
    check empty.height == 4
    check empty[].Pop() == 9
    check empty[].Pop() == 8
    check empty[].Pop() == 0
    empty[].Push(13)
    empty[].Push(14)
    empty[].Push(-2)
    empty[].Begin((15, 16))
    check empty[].Pop() == 0
  test "End":
    var empty = NewStackStack()
    var v: tuple[x,y: int] = (0, 0)
    empty[].Push(1)
    check empty[].End(v) == true
    check empty.height == 1
    check empty[].Pop() == 1
    empty[].Push(1)
    empty[].Push(2)
    empty[].Push(3)
    empty[].Push(4)
    empty[].Push(2)
    v = (5, 6)
    empty[].Begin(v)
    v = (0, 0)
    empty[].Push(2)
    check empty[].End(v) == false
    check v == (5, 6)
    check empty.height == 1
    check empty[].End(v) == true
    check empty[].Pop() == 4
    check empty[].Pop() == 3
    check empty[].Pop() == 2
    check empty[].Pop() == 1
    empty[].Push(1)
    empty[].Push(2)
    empty[].Push(3)
    empty[].Push(4)
    empty[].Push(2)
    empty[].Begin(v)
    empty[].Push(4)
    check empty[].End(v) == false
    check v == (5, 6)
    check empty.height == 1
    check empty[].Pop() == 4
    check empty[].Pop() == 3
    check empty[].Pop() == 0
    check empty[].Pop() == 0
    check empty[].Pop() == 2
    check empty[].Pop() == 1
    empty[].Push(1)
    empty[].Push(2)
    empty[].Push(3)
    empty[].Push(4)
    empty[].Push(1)
    empty[].Begin(v)
    empty[].Push(-2)
    check empty[].End(v) == false
    check v == (5, 6)
    check empty.height == 1
    check empty[].Pop() == 1
    check empty[].Pop() == 0