mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-08 11:57:51 +00:00
fix tests, prep for union rle implementations
This commit is contained in:
parent
250e8f6f5b
commit
9781a4c78b
2 changed files with 28 additions and 4 deletions
|
|
@ -1804,12 +1804,24 @@ func union(a, b *container) *container {
|
|||
if a.isArray() {
|
||||
if b.isArray() {
|
||||
return unionArrayArray(a, b)
|
||||
} else if b.isRun() {
|
||||
return unionArrayRun(a, b)
|
||||
} else {
|
||||
return unionArrayBitmap(a, b)
|
||||
}
|
||||
} else if a.isRun() {
|
||||
if b.isArray() {
|
||||
return unionArrayRun(b, a)
|
||||
} else if b.isRun() {
|
||||
return unionRunRun(a, b)
|
||||
} else {
|
||||
return unionBitmapRun(b, a)
|
||||
}
|
||||
} else {
|
||||
if b.isArray() {
|
||||
return unionArrayBitmap(b, a)
|
||||
} else if b.isRun() {
|
||||
return unionBitmapRun(a, b)
|
||||
} else {
|
||||
return unionBitmapBitmap(a, b)
|
||||
}
|
||||
|
|
@ -1847,6 +1859,18 @@ func unionArrayArray(a, b *container) *container {
|
|||
return output
|
||||
}
|
||||
|
||||
func unionArrayRun(a, b *container) *container {
|
||||
return nil
|
||||
}
|
||||
|
||||
func unionRunRun(a, b *container) *container {
|
||||
return nil
|
||||
}
|
||||
|
||||
func unionBitmapRun(a, b *container) *container {
|
||||
return nil
|
||||
}
|
||||
|
||||
func unionArrayBitmap(a, b *container) *container {
|
||||
output := &container{}
|
||||
itr := newBufIterator(newBitmapIterator(b.bitmap))
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ func TestIntersectionCountArrayRun(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestIntersectionCountBitmapRun(t *testing.T) {
|
||||
a := &container{bitmap: []uint64{1}}
|
||||
a := &container{bitmap: []uint64{0x8000000000000000}}
|
||||
b := &container{runs: []interval32{{start: 63, last: 64}}}
|
||||
|
||||
ret := intersectionCountBitmapRun(a, b)
|
||||
|
|
@ -295,11 +295,11 @@ func TestIntersectionCountBitmapRun(t *testing.T) {
|
|||
}
|
||||
|
||||
a = &container{bitmap: []uint64{0xF0000001, 0xFF00000000000000, 0xFF000000000000F0, 0x0F0000}}
|
||||
b = &container{runs: []interval32{{start: 33, last: 35}, {start: 62, last: 69}, {start: 130, last: 150}, {start: 186, last: 300}}}
|
||||
b = &container{runs: []interval32{{start: 29, last: 31}, {start: 125, last: 134}, {start: 191, last: 197}, {start: 200, last: 300}}}
|
||||
|
||||
ret = intersectionCountBitmapRun(a, b)
|
||||
if ret != 22 {
|
||||
t.Fatalf("count of %v with %v should be 22, but got %v", a.bitmap, b.runs, ret)
|
||||
if ret != 14 {
|
||||
t.Fatalf("count of %v with %v should be 14, but got %v", a.bitmap, b.runs, ret)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue