mirror of
https://github.com/emirpasic/gods.git
synced 2026-06-15 16:16:35 +03:00
- detailed extensive tests with breakdown on number of elements
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user