check(13, 5, 13, Request{}, false)
}
-func TestIterBitmapsDistinct(t *testing.T) {
- var skip, first, second bitmap.Bitmap
- skip.Add(1)
- first.Add(1, 0, 3)
- second.Add(1, 2, 0)
- skipCopy := skip.Copy()
- assert.Equal(t, []interface{}{0, 3, 2}, iter.ToSlice(iterBitmapsDistinct(&skipCopy, first, second)))
- assert.Equal(t, []int{1}, skip.ToSortedSlice())
+func BenchmarkIterBitmapsDistinct(t *testing.B) {
+ t.ReportAllocs()
+ for range iter.N(t.N) {
+ var skip, first, second bitmap.Bitmap
+ skip.Add(1)
+ first.Add(1, 0, 3)
+ second.Add(1, 2, 0)
+ skipCopy := skip.Copy()
+ t.StartTimer()
+ output := iter.ToSlice(iterBitmapsDistinct(&skipCopy, first, second))
+ t.StopTimer()
+ assert.Equal(t, []interface{}{0, 3, 2}, output)
+ assert.Equal(t, []int{1}, skip.ToSortedSlice())
+ }
}
func TestSpewConnStats(t *testing.T) {
func iterBitmapsDistinct(skip *bitmap.Bitmap, bms ...bitmap.Bitmap) iter.Func {
return func(cb iter.Callback) {
for _, bm := range bms {
+ bm.Sub(*skip)
if !iter.All(
func(i interface{}) bool {
skip.Add(i.(int))
return cb(i)
},
- bitmap.Sub(bm, *skip).Iter,
+ bm.Iter,
) {
return
}