Skip to content

Commit

Permalink
Merge pull request #468 from RoaringBitmap/issue467
Browse files Browse the repository at this point in the history
fixing issue 467
  • Loading branch information
lemire authored Jan 31, 2025
2 parents 95eeba4 + 6b2c8e2 commit 461d7ec
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 2 deletions.
74 changes: 74 additions & 0 deletions roaring_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3236,3 +3236,77 @@ func BenchmarkArrayUnionThreshold(b *testing.B) {
})
}
}

func TestIssue467CaseSmall(t *testing.T) {
b := New()
b.AddRange(0, 16385)
b.AddRange(16385, 20482)
b.AddRange(20482, 27862)
b.AddRange(27862, 44247)
b.AddRange(45576, 61961)
b.AddRange(61961, 66058)
b.AddRange(66058, 67247)
b.AddRange(68819, 73028)
b.AddRange(73028, 89413)
b.AddRange(92266, 108651)
b.AddRange(108651, 113772)
b.AddRange(113772, 118757)
b.AddRange(118757, 132098)
b.RunOptimize()
require.NoError(t, b.Validate())
}

func TestIssue467CaseLarge(t *testing.T) {
b := New()
b.RemoveRange(0, 16385)
b.RemoveRange(16385, 20482)
b.RemoveRange(20482, 27862)
b.AddRange(0, 16385)
b.AddRange(16385, 20482)
b.AddRange(20482, 27862)
b.RemoveRange(27862, 44247)
b.RemoveRange(44247, 45576)
b.RemoveRange(45576, 61961)
b.RemoveRange(61961, 66058)
b.RemoveRange(66058, 67247)
b.AddRange(27862, 44247)
b.AddRange(45576, 61961)
b.AddRange(44247, 45576)
b.AddRange(61961, 66058)
b.AddRange(66058, 67247)
b.RemoveRange(67247, 68819)
b.RemoveRange(68819, 73028)
b.RemoveRange(73028, 89413)
b.RemoveRange(89413, 92266)
b.RemoveRange(92266, 108651)
b.RemoveRange(108651, 113772)
b.RemoveRange(113772, 118757)
b.AddRange(68819, 73028)
b.AddRange(73028, 89413)
b.AddRange(92266, 108651)
b.AddRange(89413, 92266)
b.AddRange(108651, 113772)
b.AddRange(113772, 118757)
b.RemoveRange(118757, 132098)
b.AddRange(118757, 132098)
b.RemoveRange(132098, 137544)
b.AddRange(132098, 137544)
b.RemoveRange(137544, 153929)
b.RemoveRange(153929, 155151)
b.RemoveRange(155151, 162078)
b.RemoveRange(162078, 167119)
b.RemoveRange(167119, 181012)
b.RemoveRange(181012, 197397)
b.RemoveRange(197397, 201244)
b.RemoveRange(201244, 217629)
b.RemoveRange(217629, 222750)
b.RemoveRange(222750, 227708)
b.RemoveRange(227708, 235777)
b.RemoveRange(235777, 252162)
b.RemoveRange(252162, 256259)
b.AddRange(252162, 256259)
b.AddRange(227708, 235777)
b.AddRange(235777, 252162)
b.RunOptimize()
require.NoError(t, b.Validate())
}
4 changes: 2 additions & 2 deletions runcontainer.go
Original file line number Diff line number Diff line change
Expand Up @@ -1504,8 +1504,8 @@ func (iv interval16) isNonContiguousDisjoint(b interval16) bool {
return false
}

nonContiguous1 := iv.start == b.last()+1 || iv.last() == b.start+1
nonContiguous2 := b.start == iv.last()+1 || b.last() == iv.start+1
nonContiguous1 := uint32(iv.start) == uint32(b.last())+1 || uint32(iv.last()) == uint32(b.start)+1
nonContiguous2 := uint32(b.start) == uint32(iv.last())+1 || uint32(b.last()) == uint32(iv.start)+1
if nonContiguous1 || nonContiguous2 {
return false
}
Expand Down

0 comments on commit 461d7ec

Please sign in to comment.