v / vlib / datatypes
Raw file | 59 loc (53 sloc) | 1.03 KB | Latest commit hash 7d8c38672
1import datatypes as dt
2
3fn 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
10fn 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
19fn 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
30fn 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
40fn 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
54fn test_array() {
55 mut stack := dt.Stack[int]{}
56 stack.push(1)
57 stack.push(2)
58 assert stack.array() == [1, 2]
59}