mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 09:05:55 +00:00
Update test, cleanup
This commit is contained in:
parent
b33bf230c3
commit
bfce3a0746
2 changed files with 9 additions and 4 deletions
|
|
@ -1518,7 +1518,7 @@ func (c *container) runToBitmap() {
|
|||
}
|
||||
|
||||
for _, r := range c.runs {
|
||||
// TODO is there a faster way ?!?!!
|
||||
// TODO this can be ~64x faster for long runs by setting maxBitmap instead of single bits
|
||||
for v := r.start; v <= r.last; v++ {
|
||||
c.bitmap[int(v)/64] |= (uint64(1) << uint(v%64))
|
||||
}
|
||||
|
|
@ -1564,10 +1564,9 @@ func (c *container) bitmapToRun() {
|
|||
current = c.bitmap[i]
|
||||
}
|
||||
|
||||
last = 0
|
||||
if current == maxBitmap {
|
||||
last = 64*i + 64 // TODO verify
|
||||
c.runs = append(c.runs, interval32{start, last - 1})
|
||||
// bitmap[1023] == maxBitmap
|
||||
c.runs = append(c.runs, interval32{start, 65535})
|
||||
break
|
||||
}
|
||||
currentLast := uint32(trailingZeroN(^current))
|
||||
|
|
|
|||
|
|
@ -895,7 +895,13 @@ func TestBitmapToRun(t *testing.T) {
|
|||
bitmap: []uint64{0xF000000000000000, 0xFFFFFFFFFFFFFFFF, 0xF},
|
||||
exp: []interval32{{start: 60, last: 131}},
|
||||
},
|
||||
{
|
||||
bitmap: make([]uint64, bitmapN),
|
||||
exp: []interval32{{start: 65408, last: 65535}},
|
||||
},
|
||||
}
|
||||
tests[8].bitmap[1022] = 0xFFFFFFFFFFFFFFFF
|
||||
tests[8].bitmap[1023] = 0xFFFFFFFFFFFFFFFF
|
||||
|
||||
for i, test := range tests {
|
||||
a.bitmap = make([]uint64, bitmapN)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue