-
Notifications
You must be signed in to change notification settings - Fork 0
/
stack_test.go
87 lines (66 loc) · 1.26 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
package adt_test
import (
"testing"
adt "github.com/testingallthethings/008-stack"
)
func TestEmpty(t *testing.T) {
s := adt.NewStack()
if s.Empty() != true {
t.Error("Stack was not empty")
}
}
func TestNotEmpty(t *testing.T) {
s := adt.NewStack()
s.Add("Bob")
if s.Empty() != false {
t.Error("Stack was empty")
}
}
func TestSizeZero(t *testing.T) {
s := adt.NewStack()
if s.Size() != 0 {
t.Errorf("Expected zero elements found: %d", s.Size())
}
}
func TestSizeOne(t *testing.T) {
s := adt.NewStack()
s.Add("Bob")
if s.Size() != 1 {
t.Error("Incorrect Size")
t.Log("Expected: 1")
t.Logf("Actual: %d", s.Size())
}
}
func TestSizeThree(t *testing.T) {
s := adt.NewStack()
s.Add("Bob")
s.Add("Dave")
s.Add("Sarah")
if s.Size() != 3 {
t.Errorf("Expected 3, found %d", s.Size())
}
}
func TestPopOne(t *testing.T) {
s := adt.NewStack()
s.Add("Bob")
v := s.Pop()
if v != "Bob" {
t.Errorf("Expected Bob, found %s", v)
}
if s.Size() != 0 {
t.Errorf("Expected size 0, found %d", s.Size())
}
}
func TestPopTwo(t *testing.T) {
s := adt.NewStack()
s.Add("Bob")
s.Add("Alice")
v := s.Pop()
if v != "Alice" {
t.Errorf("Expected Alice, found %s", v)
}
v2 := s.Pop()
if v2 != "Bob" {
t.Errorf("Expected Bob, found %s", v2)
}
}