Skip to content

Commit add9cb0

Browse files
authored
Merge pull request #442 from RoaringBitmap/issue440
further fix for issue 440
2 parents bbff6e9 + ac91af2 commit add9cb0

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

roaring_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,30 @@ func TestIssue440(t *testing.T) {
2525
require.Equal(t, b1, b2)
2626
}
2727

28+
func TestIssue440_2(t *testing.T) {
29+
a := NewBitmap()
30+
a.AddMany([]uint32{1, 2, 3, 4})
31+
a.RunOptimize()
32+
b1, err := a.MarshalBinary()
33+
require.NoError(t, err)
34+
a.RunOptimize()
35+
b2, err := a.MarshalBinary()
36+
require.NoError(t, err)
37+
require.Equal(t, b1, b2)
38+
}
39+
40+
func TestIssue440_3(t *testing.T) {
41+
a := NewBitmap()
42+
a.AddMany([]uint32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13})
43+
a.RunOptimize()
44+
b1, err := a.MarshalBinary()
45+
require.NoError(t, err)
46+
a.RunOptimize()
47+
b2, err := a.MarshalBinary()
48+
require.NoError(t, err)
49+
require.Equal(t, b1, b2)
50+
}
51+
2852
func checkValidity(t *testing.T, rb *Bitmap) {
2953
t.Helper()
3054

runcontainer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2521,7 +2521,7 @@ func (rc *runContainer16) toEfficientContainer() container {
25212521
sizeAsBitmapContainer := bitmapContainerSizeInBytes()
25222522
card := rc.getCardinality()
25232523
sizeAsArrayContainer := arrayContainerSizeInBytes(card)
2524-
if sizeAsRunContainer <= minOfInt(sizeAsBitmapContainer, sizeAsArrayContainer) {
2524+
if sizeAsRunContainer > minOfInt(sizeAsBitmapContainer, sizeAsArrayContainer) {
25252525
return rc
25262526
}
25272527
if card <= arrayDefaultMaxSize {

0 commit comments

Comments
 (0)