- detailed extensive tests with breakdown on number of elements

This commit is contained in:
Emir Pasic
2016-07-16 04:40:16 +02:00
parent b38c99bf33
commit efcbbe6274
16 changed files with 1892 additions and 76 deletions
+94 -5
View File
@@ -231,14 +231,103 @@ func TestStackIteratorLast(t *testing.T) {
}
}
func BenchmarkStack(b *testing.B) {
func benchmarkPush(b *testing.B, stack *Stack, size int) {
for i := 0; i < b.N; i++ {
stack := New()
for n := 0; n < 1000; n++ {
stack.Push(i)
for n := 0; n < size; n++ {
stack.Push(n)
}
for !stack.Empty() {
}
}
func benchmarkPop(b *testing.B, stack *Stack, size int) {
for i := 0; i < b.N; i++ {
for n := 0; n < size; n++ {
stack.Pop()
}
}
}
func BenchmarkArrayStackPop100(b *testing.B) {
b.StopTimer()
size := 100
stack := New()
for n := 0; n < size; n++ {
stack.Push(n)
}
b.StartTimer()
benchmarkPop(b, stack, size)
}
func BenchmarkArrayStackPop1000(b *testing.B) {
b.StopTimer()
size := 1000
stack := New()
for n := 0; n < size; n++ {
stack.Push(n)
}
b.StartTimer()
benchmarkPop(b, stack, size)
}
func BenchmarkArrayStackPop10000(b *testing.B) {
b.StopTimer()
size := 10000
stack := New()
for n := 0; n < size; n++ {
stack.Push(n)
}
b.StartTimer()
benchmarkPop(b, stack, size)
}
func BenchmarkArrayStackPop100000(b *testing.B) {
b.StopTimer()
size := 100000
stack := New()
for n := 0; n < size; n++ {
stack.Push(n)
}
b.StartTimer()
benchmarkPop(b, stack, size)
}
func BenchmarkArrayStackPush100(b *testing.B) {
b.StopTimer()
size := 100
stack := New()
b.StartTimer()
benchmarkPush(b, stack, size)
}
func BenchmarkArrayStackPush1000(b *testing.B) {
b.StopTimer()
size := 1000
stack := New()
for n := 0; n < size; n++ {
stack.Push(n)
}
b.StartTimer()
benchmarkPush(b, stack, size)
}
func BenchmarkArrayStackPush10000(b *testing.B) {
b.StopTimer()
size := 10000
stack := New()
for n := 0; n < size; n++ {
stack.Push(n)
}
b.StartTimer()
benchmarkPush(b, stack, size)
}
func BenchmarkArrayStackPush100000(b *testing.B) {
b.StopTimer()
size := 100000
stack := New()
for n := 0; n < size; n++ {
stack.Push(n)
}
b.StartTimer()
benchmarkPush(b, stack, size)
}