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
|
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 "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
|