File tree Expand file tree Collapse file tree 2 files changed +27
-3
lines changed
Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Original file line number Diff line number Diff line change 11package roaring64
22
3- import "github.com/RoaringBitmap/roaring"
3+ import (
4+ "github.com/RoaringBitmap/roaring"
5+ )
46
57// IntIterable64 allows you to iterate over the values in a Bitmap
68type IntIterable64 interface {
@@ -33,13 +35,14 @@ func (ii *intIterator) HasNext() bool {
3335func (ii * intIterator ) init () {
3436 if ii .highlowcontainer .size () > ii .pos {
3537 ii .iter = ii .highlowcontainer .getContainerAtIndex (ii .pos ).Iterator ()
36- ii .hs = uint64 (ii .highlowcontainer .getKeyAtIndex (ii .pos )) << 16
38+ ii .hs = uint64 (ii .highlowcontainer .getKeyAtIndex (ii .pos )) << 32
3739 }
3840}
3941
4042// Next returns the next integer
4143func (ii * intIterator ) Next () uint64 {
42- x := uint64 (ii .iter .Next ()) | ii .hs
44+ lowbits := ii .iter .Next ()
45+ x := uint64 (lowbits ) | ii .hs
4346 if ! ii .iter .HasNext () {
4447 ii .pos = ii .pos + 1
4548 ii .init ()
Original file line number Diff line number Diff line change 11package roaring64
22
33import (
4+ "fmt"
45 "log"
56 "math"
67 "math/rand"
@@ -26,6 +27,26 @@ func TestRoaringIntervalCheck(t *testing.T) {
2627 assert .False (t , r .Intersects (rangeb2 ))
2728}
2829
30+ func TestIssue266 (t * testing.T ) {
31+ r := BitmapOf (12345 , 5764607714248818780 )
32+ assert .EqualValues (t , 2 , r .GetCardinality ())
33+ assert .EqualValues (t , 2 , r .GetCardinality ())
34+ assert .EqualValues (t , true , r .Contains (12345 ))
35+ assert .EqualValues (t , true , r .Contains (5764607714248818780 ))
36+
37+ i := r .Iterator ()
38+
39+ if assert .True (t , i .HasNext ()) {
40+ assert .EqualValues (t , 12345 , i .Next ())
41+ if assert .True (t , i .HasNext ()) {
42+ assert .EqualValues (t , uint64 (5764607714248818780 ), i .Next ())
43+ assert .False (t , i .HasNext ())
44+ }
45+ }
46+
47+ fmt .Println (r .String ())
48+ }
49+
2950func TestRoaringRangeEnd (t * testing.T ) {
3051 r := New ()
3152 r .Add (roaring .MaxUint32 )
You can’t perform that action at this time.
0 commit comments