MCPcopy Create free account
hub / github.com/RoaringBitmap/roaring / TestCardinalityInRangeMultiContainer

Function TestCardinalityInRangeMultiContainer

roaring_test.go:1108–1138  ·  view source on GitHub ↗

TestCardinalityInRangeMultiContainer tests ranges spanning multiple containers (high 16 bits).

(t *testing.T)

Source from the content-addressed store, hash-verified

1106
1107// TestCardinalityInRangeMultiContainer tests ranges spanning multiple containers (high 16 bits).
1108func TestCardinalityInRangeMultiContainer(t *testing.T) {
1109 rb := NewBitmap()
1110 // Put values in 3 different containers:
1111 // Container 0 (key=0): values 0..99
1112 for i := uint32(0); i < 100; i++ {
1113 rb.Add(i)
1114 }
1115 // Container 1 (key=1): values 65536..65635
1116 for i := uint32(0); i < 100; i++ {
1117 rb.Add(65536 + i)
1118 }
1119 // Container 3 (key=3): values 196608..196707 (skip container 2)
1120 for i := uint32(0); i < 100; i++ {
1121 rb.Add(196608 + i)
1122 }
1123
1124 // Entire range
1125 assert.EqualValues(t, 300, rb.CardinalityInRange(0, 200000))
1126 // Just container 0
1127 assert.EqualValues(t, 100, rb.CardinalityInRange(0, 65536))
1128 // Just container 1
1129 assert.EqualValues(t, 100, rb.CardinalityInRange(65536, 131072))
1130 // Containers 0 and 1
1131 assert.EqualValues(t, 200, rb.CardinalityInRange(0, 131072))
1132 // Partial container 0 + full container 1 + partial container 3
1133 assert.EqualValues(t, 50+100+50, rb.CardinalityInRange(50, 196658))
1134 // Range in the gap (container 2 doesn't exist)
1135 assert.EqualValues(t, 0, rb.CardinalityInRange(131072, 196608))
1136 // Range spanning the gap
1137 assert.EqualValues(t, 100+100, rb.CardinalityInRange(65536, 196708))
1138}
1139
1140// TestCardinalityInRangeRunOptimized tests CardinalityInRange with run-compressed containers.
1141func TestCardinalityInRangeRunOptimized(t *testing.T) {

Callers

nothing calls this directly

Calls 3

AddMethod · 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…