diff options
Diffstat (limited to 'set')
| -rw-r--r-- | set/set_test.go | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/set/set_test.go b/set/set_test.go index cd44e24..dac258a 100644 --- a/set/set_test.go +++ b/set/set_test.go @@ -9,7 +9,10 @@ import ( const factor int = 10 const minLength int = 1 -const maxLength int = 10 +const maxLength int = 10000 + +// Store results here to avoid compiler optimizations +var benchResult int func TestElementary(t *testing.T) { s := NewElementary() @@ -44,3 +47,31 @@ func test(s Set, l int, t *testing.T) { } t.Run(fmt.Sprintf("%d", l), cb) } + +func BenchmarkElementary(t *testing.B) { + s := NewElementary() + for i := minLength; i <= maxLength; i *= factor { + benchmark(s, i, t) + } +} + +func BenchmarkBST(t *testing.B) { + s := NewBST() + for i := minLength; i <= maxLength; i *= factor { + benchmark(s, i, t) + } +} + +func benchmark(s Set, l int, b *testing.B) { + list := ds.NewRandomArrayList(l, -1) + + b.Run(fmt.Sprintf("random(%d)", l), func(b *testing.B) { + b.ResetTimer() + for i, a := range list { + s.Set(a, i) + } + for _, a := range list { + benchResult, _ = s.Get(a) + } + }) +} |
