clensed String method;added documentation for tests

This commit is contained in:
Todd Gruben 2017-05-31 15:01:48 -05:00
parent 649e58253a
commit 7382428f38
2 changed files with 9 additions and 2 deletions

View file

@ -104,10 +104,12 @@ func (b *Bitmap) Add(a ...uint64) (changed bool, err error) {
}
func (b *Bitmap) String() string {
var buffer bytes.Buffer
for _, v := range b.Slice() {
for i, v := range b.Slice() {
buffer.WriteString(fmt.Sprintf("%d ", v))
if i > 0 {
buffer.WriteString(" ")
}
}
buffer.WriteString("\n")
return buffer.String()
}
@ -720,10 +722,12 @@ func (b *Bitmap) Flip(start, end uint64) *Bitmap {
result := NewBitmap()
itr := b.Iterator()
v, eof := itr.Next()
//copy over previous bits.
for v < start && !eof {
result.add(v)
v, eof = itr.Next()
}
//flip bits in range .
for i := start; i <= end; i++ {
if eof {
result.add(i)
@ -733,6 +737,7 @@ func (b *Bitmap) Flip(start, end uint64) *Bitmap {
result.add(i)
}
}
//add remaining.
for !eof {
result.add(v)
v, eof = itr.Next()

View file

@ -226,6 +226,7 @@ func TestBitmap_Flip_Array(t *testing.T) {
}
// Ensure Flip works with underlying Bitmap container.
func TestBitmap_Flip_Bitmap(t *testing.T) {
bm := roaring.NewBitmap()
size := uint64(10000)
@ -242,6 +243,7 @@ func TestBitmap_Flip_Bitmap(t *testing.T) {
}
}
// Verify Flip works correctly with in different regions of bitmap, beginning, middle, and end.
func TestBitmap_Flip_After(t *testing.T) {
bm := roaring.NewBitmap(0, 2, 4, 8)
results := bm.Flip(9, 10)