minor: barbench refactoring
Vladimir Bauer
3 years ago
| 6 | 6 | |
| 7 | 7 | const total = 1000 |
| 8 | 8 | |
| 9 | func BenchmarkIncrementOneBar(b *testing.B) { | |
| 10 | benchBody(1, b) | |
| 9 | func BenchmarkNopStyleOneBar(b *testing.B) { | |
| 10 | bench(b, NopStyle(), 1) | |
| 11 | 11 | } |
| 12 | 12 | |
| 13 | func BenchmarkIncrementTwoBars(b *testing.B) { | |
| 14 | benchBody(2, b) | |
| 13 | func BenchmarkNopStyleTwoBars(b *testing.B) { | |
| 14 | bench(b, NopStyle(), 2) | |
| 15 | 15 | } |
| 16 | 16 | |
| 17 | func BenchmarkIncrementThreeBars(b *testing.B) { | |
| 18 | benchBody(3, b) | |
| 17 | func BenchmarkNopStyleThreeBars(b *testing.B) { | |
| 18 | bench(b, NopStyle(), 3) | |
| 19 | 19 | } |
| 20 | 20 | |
| 21 | func BenchmarkIncrementFourBars(b *testing.B) { | |
| 22 | benchBody(4, b) | |
| 21 | func BenchmarkBarStyleOneBar(b *testing.B) { | |
| 22 | bench(b, BarStyle(), 1) | |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | func benchBody(n int, b *testing.B) { | |
| 25 | func BenchmarkBarStyleTwoBars(b *testing.B) { | |
| 26 | bench(b, BarStyle(), 2) | |
| 27 | } | |
| 28 | ||
| 29 | func BenchmarkBarStyleThreeBars(b *testing.B) { | |
| 30 | bench(b, BarStyle(), 3) | |
| 31 | } | |
| 32 | ||
| 33 | func bench(b *testing.B, builder BarFillerBuilder, n int) { | |
| 34 | var wg sync.WaitGroup | |
| 26 | 35 | p := New(WithOutput(nil), WithWidth(80)) |
| 27 | wg := new(sync.WaitGroup) | |
| 28 | 36 | b.ResetTimer() |
| 29 | 37 | for i := 0; i < b.N; i++ { |
| 30 | 38 | for j := 0; j < n; j++ { |
| 31 | bar := p.AddBar(total) | |
| 39 | bar := p.New(total, builder) | |
| 32 | 40 | switch j { |
| 33 | 41 | case n - 1: |
| 34 | 42 | complete(b, bar) |
| 52 | 60 | if !bar.Completed() { |
| 53 | 61 | b.Fail() |
| 54 | 62 | } |
| 63 | bar.Wait() | |
| 55 | 64 | } |