- refactor stacks' tests

pull/15/head
Emir Pasic 9 years ago
parent a86a65ffaf
commit fe7fb7b07b

@ -30,15 +30,11 @@ import (
"testing" "testing"
) )
func TestArrayStack(t *testing.T) { func TestStackPush(t *testing.T) {
stack := New() stack := New()
if actualValue := stack.Empty(); actualValue != true { if actualValue := stack.Empty(); actualValue != true {
t.Errorf("Got %v expected %v", actualValue, true) t.Errorf("Got %v expected %v", actualValue, true)
} }
// insertions
stack.Push(1) stack.Push(1)
stack.Push(2) stack.Push(2)
stack.Push(3) stack.Push(3)
@ -46,47 +42,57 @@ func TestArrayStack(t *testing.T) {
if actualValue := stack.Values(); actualValue[0].(int) != 3 || actualValue[1].(int) != 2 || actualValue[2].(int) != 1 { if actualValue := stack.Values(); actualValue[0].(int) != 3 || actualValue[1].(int) != 2 || actualValue[2].(int) != 1 {
t.Errorf("Got %v expected %v", actualValue, "[3,2,1]") t.Errorf("Got %v expected %v", actualValue, "[3,2,1]")
} }
if actualValue := stack.Empty(); actualValue != false { if actualValue := stack.Empty(); actualValue != false {
t.Errorf("Got %v expected %v", actualValue, false) t.Errorf("Got %v expected %v", actualValue, false)
} }
if actualValue := stack.Size(); actualValue != 3 { if actualValue := stack.Size(); actualValue != 3 {
t.Errorf("Got %v expected %v", actualValue, 3) t.Errorf("Got %v expected %v", actualValue, 3)
} }
if actualValue, ok := stack.Peek(); actualValue != 3 || !ok {
t.Errorf("Got %v expected %v", actualValue, 3)
}
}
func TestStackPeek(t *testing.T) {
stack := New()
if actualValue, ok := stack.Peek(); actualValue != nil || ok {
t.Errorf("Got %v expected %v", actualValue, nil)
}
stack.Push(1)
stack.Push(2)
stack.Push(3)
if actualValue, ok := stack.Peek(); actualValue != 3 || !ok { if actualValue, ok := stack.Peek(); actualValue != 3 || !ok {
t.Errorf("Got %v expected %v", actualValue, 3) t.Errorf("Got %v expected %v", actualValue, 3)
} }
}
func TestStackPop(t *testing.T) {
stack := New()
stack.Push(1)
stack.Push(2)
stack.Push(3)
stack.Pop() stack.Pop()
if actualValue, ok := stack.Peek(); actualValue != 2 || !ok { if actualValue, ok := stack.Peek(); actualValue != 2 || !ok {
t.Errorf("Got %v expected %v", actualValue, 2) t.Errorf("Got %v expected %v", actualValue, 2)
} }
if actualValue, ok := stack.Pop(); actualValue != 2 || !ok { if actualValue, ok := stack.Pop(); actualValue != 2 || !ok {
t.Errorf("Got %v expected %v", actualValue, 2) t.Errorf("Got %v expected %v", actualValue, 2)
} }
if actualValue, ok := stack.Pop(); actualValue != 1 || !ok { if actualValue, ok := stack.Pop(); actualValue != 1 || !ok {
t.Errorf("Got %v expected %v", actualValue, 1) t.Errorf("Got %v expected %v", actualValue, 1)
} }
if actualValue, ok := stack.Pop(); actualValue != nil || ok { if actualValue, ok := stack.Pop(); actualValue != nil || ok {
t.Errorf("Got %v expected %v", actualValue, nil) t.Errorf("Got %v expected %v", actualValue, nil)
} }
if actualValue := stack.Empty(); actualValue != true { if actualValue := stack.Empty(); actualValue != true {
t.Errorf("Got %v expected %v", actualValue, true) t.Errorf("Got %v expected %v", actualValue, true)
} }
if actualValue := stack.Values(); len(actualValue) != 0 { if actualValue := stack.Values(); len(actualValue) != 0 {
t.Errorf("Got %v expected %v", actualValue, "[]") t.Errorf("Got %v expected %v", actualValue, "[]")
} }
} }
func TestArrayStackIterator(t *testing.T) { func TestStackIterator(t *testing.T) {
stack := New() stack := New()
stack.Push("a") stack.Push("a")
stack.Push("b") stack.Push("b")
@ -121,7 +127,7 @@ func TestArrayStackIterator(t *testing.T) {
} }
} }
func BenchmarkArrayStack(b *testing.B) { func BenchmarkStack(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
stack := New() stack := New()
for n := 0; n < 1000; n++ { for n := 0; n < 1000; n++ {
@ -131,5 +137,4 @@ func BenchmarkArrayStack(b *testing.B) {
stack.Pop() stack.Pop()
} }
} }
} }

@ -30,15 +30,11 @@ import (
"testing" "testing"
) )
func TestLinkedListStack(t *testing.T) { func TestStackPush(t *testing.T) {
stack := New() stack := New()
if actualValue := stack.Empty(); actualValue != true { if actualValue := stack.Empty(); actualValue != true {
t.Errorf("Got %v expected %v", actualValue, true) t.Errorf("Got %v expected %v", actualValue, true)
} }
// insertions
stack.Push(1) stack.Push(1)
stack.Push(2) stack.Push(2)
stack.Push(3) stack.Push(3)
@ -46,47 +42,57 @@ func TestLinkedListStack(t *testing.T) {
if actualValue := stack.Values(); actualValue[0].(int) != 3 || actualValue[1].(int) != 2 || actualValue[2].(int) != 1 { if actualValue := stack.Values(); actualValue[0].(int) != 3 || actualValue[1].(int) != 2 || actualValue[2].(int) != 1 {
t.Errorf("Got %v expected %v", actualValue, "[3,2,1]") t.Errorf("Got %v expected %v", actualValue, "[3,2,1]")
} }
if actualValue := stack.Empty(); actualValue != false { if actualValue := stack.Empty(); actualValue != false {
t.Errorf("Got %v expected %v", actualValue, false) t.Errorf("Got %v expected %v", actualValue, false)
} }
if actualValue := stack.Size(); actualValue != 3 { if actualValue := stack.Size(); actualValue != 3 {
t.Errorf("Got %v expected %v", actualValue, 3) t.Errorf("Got %v expected %v", actualValue, 3)
} }
if actualValue, ok := stack.Peek(); actualValue != 3 || !ok {
t.Errorf("Got %v expected %v", actualValue, 3)
}
}
func TestStackPeek(t *testing.T) {
stack := New()
if actualValue, ok := stack.Peek(); actualValue != nil || ok {
t.Errorf("Got %v expected %v", actualValue, nil)
}
stack.Push(1)
stack.Push(2)
stack.Push(3)
if actualValue, ok := stack.Peek(); actualValue != 3 || !ok { if actualValue, ok := stack.Peek(); actualValue != 3 || !ok {
t.Errorf("Got %v expected %v", actualValue, 3) t.Errorf("Got %v expected %v", actualValue, 3)
} }
}
func TestStackPop(t *testing.T) {
stack := New()
stack.Push(1)
stack.Push(2)
stack.Push(3)
stack.Pop() stack.Pop()
if actualValue, ok := stack.Peek(); actualValue != 2 || !ok { if actualValue, ok := stack.Peek(); actualValue != 2 || !ok {
t.Errorf("Got %v expected %v", actualValue, 2) t.Errorf("Got %v expected %v", actualValue, 2)
} }
if actualValue, ok := stack.Pop(); actualValue != 2 || !ok { if actualValue, ok := stack.Pop(); actualValue != 2 || !ok {
t.Errorf("Got %v expected %v", actualValue, 2) t.Errorf("Got %v expected %v", actualValue, 2)
} }
if actualValue, ok := stack.Pop(); actualValue != 1 || !ok { if actualValue, ok := stack.Pop(); actualValue != 1 || !ok {
t.Errorf("Got %v expected %v", actualValue, 1) t.Errorf("Got %v expected %v", actualValue, 1)
} }
if actualValue, ok := stack.Pop(); actualValue != nil || ok { if actualValue, ok := stack.Pop(); actualValue != nil || ok {
t.Errorf("Got %v expected %v", actualValue, nil) t.Errorf("Got %v expected %v", actualValue, nil)
} }
if actualValue := stack.Empty(); actualValue != true { if actualValue := stack.Empty(); actualValue != true {
t.Errorf("Got %v expected %v", actualValue, true) t.Errorf("Got %v expected %v", actualValue, true)
} }
if actualValue := stack.Values(); len(actualValue) != 0 { if actualValue := stack.Values(); len(actualValue) != 0 {
t.Errorf("Got %v expected %v", actualValue, "[]") t.Errorf("Got %v expected %v", actualValue, "[]")
} }
} }
func TestLinkedListStackIterator(t *testing.T) { func TestStackIterator(t *testing.T) {
stack := New() stack := New()
stack.Push("a") stack.Push("a")
stack.Push("b") stack.Push("b")
@ -121,7 +127,7 @@ func TestLinkedListStackIterator(t *testing.T) {
} }
} }
func BenchmarkLinkedListStack(b *testing.B) { func BenchmarkStack(b *testing.B) {
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
stack := New() stack := New()
for n := 0; n < 1000; n++ { for n := 0; n < 1000; n++ {

Loading…
Cancel
Save