package lastack import ( "testing" "github.com/emirpasic/gods/stacks/arraystack" "github.com/Pallinder/go-randomdata" ) // func TestPush(t *testing.T) { // s := New() // for i := 0; i < 10; i++ { // v := randomdata.Number(0, 10) // s.Push(v) // t.Error(v) // t.Error(s.String(), " size ", s.size) // } // t.Error(s.Values()) // for i := 0; i < 10; i++ { // v, ok := s.Pop() // t.Error(v, ok) // t.Error(s.String(), " size ", s.size) // } // for i := 0; i < 10; i++ { // v := randomdata.Number(0, 10) // s.Push(v) // } // for i := -1; i < 11; i++ { // v, ok := s.Get(i) // t.Error(v, ok) // } // } func BenchmarkGet(b *testing.B) { s := New() b.N = 20000000 for i := 0; i < b.N; i++ { v := randomdata.Number(0, 65535) s.Push(v) } b.ResetTimer() b.StartTimer() for i := 0; i < b.N; i++ { s.Get(i) } } func BenchmarkPush(b *testing.B) { s := New() b.N = 20000000 for i := 0; i < b.N; i++ { v := randomdata.Number(0, 65535) s.Push(v) } } func BenchmarkGodsPush(b *testing.B) { s := arraystack.New() b.N = 2000000 for i := 0; i < b.N; i++ { v := randomdata.Number(0, 65535) s.Push(v) } } func BenchmarkPop(b *testing.B) { s := New() b.N = 2000000 for i := 0; i < b.N; i++ { v := randomdata.Number(0, 65535) s.Push(v) } b.ResetTimer() b.StartTimer() for i := 0; i < b.N; i++ { s.Pop() } } func BenchmarkGodsPop(b *testing.B) { s := arraystack.New() b.N = 2000000 for i := 0; i < b.N; i++ { v := randomdata.Number(0, 65535) s.Push(v) } b.ResetTimer() b.StartTimer() for i := 0; i < b.N; i++ { s.Pop() } } func BenchmarkValues(b *testing.B) { s := New() for i := 0; i < b.N; i++ { v := randomdata.Number(0, 65535) s.Push(v) } b.ResetTimer() b.StartTimer() for i := 0; i < b.N; i++ { s.Values() } } func BenchmarkGodsValues(b *testing.B) { s := arraystack.New() for i := 0; i < b.N; i++ { v := randomdata.Number(0, 65535) s.Push(v) } b.ResetTimer() b.StartTimer() for i := 0; i < b.N; i++ { s.Values() } }