1 | import datatypes as dt |
2 | |
3 | fn test_is_empty() { |
4 | mut stack := dt.Stack[int]{} |
5 | assert stack.is_empty() == true |
6 | stack.push(1) |
7 | assert stack.is_empty() == false |
8 | } |
9 | |
10 | fn test_len() { |
11 | mut stack := dt.Stack[int]{} |
12 | assert stack.len() == 0 |
13 | stack.push(1) |
14 | assert stack.len() == 1 |
15 | stack.pop()! |
16 | assert stack.len() == 0 |
17 | } |
18 | |
19 | fn test_peek() { |
20 | mut stack := dt.Stack[int]{} |
21 | stack.push(1) |
22 | assert stack.peek()! == 1 |
23 | stack.push(2) |
24 | assert stack.peek()! == 2 |
25 | stack = dt.Stack[int]{} |
26 | stack.peek() or { return } |
27 | assert false |
28 | } |
29 | |
30 | fn test_push() { |
31 | mut stack := dt.Stack[int]{} |
32 | stack.push(1) |
33 | assert stack.peek()! == 1 |
34 | stack.push(2) |
35 | assert stack.peek()! == 2 |
36 | stack.push(3) |
37 | assert stack.peek()! == 3 |
38 | } |
39 | |
40 | fn test_pop() { |
41 | mut stack := dt.Stack[int]{} |
42 | stack.push(1) |
43 | stack.push(2) |
44 | stack.push(3) |
45 | assert stack.pop()! == 3 |
46 | stack.push(4) |
47 | assert stack.pop()! == 4 |
48 | assert stack.pop()! == 2 |
49 | stack = dt.Stack[int]{} |
50 | stack.pop() or { return } |
51 | assert false |
52 | } |
53 | |
54 | fn test_array() { |
55 | mut stack := dt.Stack[int]{} |
56 | stack.push(1) |
57 | stack.push(2) |
58 | assert stack.array() == [1, 2] |
59 | } |