MCPcopy
hub / github.com/RoaringBitmap/roaring / TestCardinalityInRangeRunGapWithinContainer

Function TestCardinalityInRangeRunGapWithinContainer

roaring_test.go:1160–1182  ·  view source on GitHub ↗

TestCardinalityInRangeRunGapWithinContainer tests CardinalityInRange when two run intervals exist in the same container with a gap between them.

(t *testing.T)

Source from the content-addressed store, hash-verified

1158// TestCardinalityInRangeRunGapWithinContainer tests CardinalityInRange when
1159// two run intervals exist in the same container with a gap between them.
1160func TestCardinalityInRangeRunGapWithinContainer(t *testing.T) {
1161 rb := NewBitmap()
1162 rb.AddRange(0, 1024)
1163 rb.AddRange(2048, 3072)
1164 rb.RunOptimize()
1165
1166 // Querying within each run should return the correct count.
1167 assert.EqualValues(t, 1024, rb.CardinalityInRange(0, 1024))
1168 assert.EqualValues(t, 1024, rb.CardinalityInRange(2048, 3072))
1169
1170 // The gap [1024, 2048) has zero set bits.
1171 assert.EqualValues(t, 0, rb.CardinalityInRange(1024, 2048))
1172
1173 // Ranges that span the gap should not count the gap.
1174 assert.EqualValues(t, 2048, rb.CardinalityInRange(0, 3072))
1175
1176 // Boundary: bit 1023 is set, bit 1024 is not.
1177 assert.EqualValues(t, 1, rb.CardinalityInRange(1023, 1024))
1178 assert.EqualValues(t, 1, rb.CardinalityInRange(1023, 1025))
1179
1180 // Partial ranges touching each side of the gap.
1181 assert.EqualValues(t, 512+512, rb.CardinalityInRange(512, 2560))
1182}
1183
1184// TestCardinalityInRangeBitmapContainer tests CardinalityInRange with bitmap containers (>4096 values in one container).
1185func TestCardinalityInRangeBitmapContainer(t *testing.T) {

Callers

nothing calls this directly

Calls 4

AddRangeMethod · 0.95
RunOptimizeMethod · 0.95
CardinalityInRangeMethod · 0.95
NewBitmapFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…