-
Notifications
You must be signed in to change notification settings - Fork 0
/
Stack_test.go
136 lines (109 loc) · 3.14 KB
/
Stack_test.go
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package d8astruct
import (
"fmt"
"github.com/stretchr/testify/assert"
"testing"
)
func TestStack_EmptyStack(t *testing.T) {
t.Run("Testing that a stack size does change with EmptyStack", func(t *testing.T) {
var stack Stack
stack.Push("Hello")
stack.Push(',')
stack.Push(" World")
initStackSize := stack.Length()
stack.EmptyStack()
newStackSize := stack.Length()
if newStackSize == initStackSize {
assert.Fail(t, "EmptyStack did not remove items from stack")
return
}
})
}
func TestStack_Push(t *testing.T) {
t.Run("Testing that a stack size does change with push", func(t *testing.T) {
var stack Stack
initStackSize := stack.Length()
stack.Push("Hello")
newStackSize := stack.Length()
if newStackSize == initStackSize {
assert.Fail(t, "Push did not add an item to stack")
return
}
})
}
func TestStack_Peek(t *testing.T) {
t.Run("Testing that a peek does not run if stack is empty", func(t *testing.T) {
var stack Stack
initStackSize := stack.Length()
fmt.Println(stack.Peek())
newStackSize := stack.Length()
if newStackSize != initStackSize {
assert.Fail(t, "Peek incorrectly removed an item from stack")
return
}
})
t.Run("Testing that a stack size does not change with peek", func(t *testing.T) {
var stack Stack
stack.Push("Hello")
stack.Push(',')
stack.Push(" World")
initStackSize := stack.Length()
fmt.Println(stack.Peek())
newStackSize := stack.Length()
if newStackSize != initStackSize {
assert.Fail(t, "Peek incorrectly removed an item from stack")
return
}
})
}
func TestStack_Pop(t *testing.T) {
t.Run("Testing that a pop does not run if stack is empty", func(t *testing.T) {
var stack Stack
initStackSize := stack.Length()
fmt.Println(stack.Pop())
newStackSize := stack.Length()
if newStackSize != initStackSize {
assert.Fail(t, "pop incorrectly removed an item from stack")
return
}
})
t.Run("Testing that a stack size does change with pop", func(t *testing.T) {
var stack Stack
stack.Push("Hello")
stack.Push(',')
stack.Push(" World")
initStackSize := stack.Length()
fmt.Println(stack.Pop())
newStackSize := stack.Length()
if newStackSize == initStackSize {
assert.Fail(t, "Pop did not remove an item from stack")
return
}
})
}
func TestStack_First(t *testing.T) {
t.Run("Testing that a First (Pop from front) does not run if stack is empty", func(t *testing.T) {
var stack Stack
initStackSize := stack.Length()
fmt.Println(stack.First())
newStackSize := stack.Length()
if newStackSize != initStackSize {
assert.Fail(t, "First incorrectly removed an item from stack")
return
}
})
t.Run("Testing that a stack size does change with pop", func(t *testing.T) {
var stack Stack
stack.Push("Hello")
stack.Push(',')
stack.Push(" World")
initStackSize := stack.Length()
got := stack.First()
newStackSize := stack.Length()
if newStackSize == initStackSize {
assert.Fail(t, "Pop did not remove an item from stack")
return
}
assert.Equal(t, "Hello", got)
})
}