diff --git a/roaring/roaring.go b/roaring/roaring.go index 9eb927d79..578547506 100644 --- a/roaring/roaring.go +++ b/roaring/roaring.go @@ -2481,6 +2481,7 @@ func differenceRunArray(a, b *container) *container { continue } output.runs = append(output.runs, interval16{start: start, last: vb - 1}) + output.n += int(vb - start) start = vb + 1 bidx++ if bidx >= len(b.array) { @@ -2491,6 +2492,7 @@ func differenceRunArray(a, b *container) *container { if start <= run.last { output.runs = append(output.runs, interval16{start: start, last: run.last}) + output.n += int(run.last - start + 1) } } output.Optimize() diff --git a/roaring/roaring_internal_test.go b/roaring/roaring_internal_test.go index 0afa346d1..bdc08b649 100644 --- a/roaring/roaring_internal_test.go +++ b/roaring/roaring_internal_test.go @@ -763,7 +763,7 @@ func TestDifferenceMixed(t *testing.T) { res := difference(a, b) if !reflect.DeepEqual(res.array, []uint16{5, 7, 9}) { - t.Fatalf("test #1 expected %v, but got %v", []uint16{5, 7, 9}, res.array) + t.Fatalf("test #1 expected %v, but got %#v", []uint16{5, 7, 9}, res) } res = difference(b, a)