TestCardinalityInRangeRunOptimized tests CardinalityInRange with run-compressed containers.
(t *testing.T)
| 1139 | |
| 1140 | // TestCardinalityInRangeRunOptimized tests CardinalityInRange with run-compressed containers. |
| 1141 | func TestCardinalityInRangeRunOptimized(t *testing.T) { |
| 1142 | rb := NewBitmap() |
| 1143 | // Create a large consecutive range which will be run-optimized. |
| 1144 | rb.AddRange(1000, 5000) |
| 1145 | rb.AddRange(70000, 80000) // second container (key=1) |
| 1146 | rb.RunOptimize() |
| 1147 | |
| 1148 | assert.EqualValues(t, 4000, rb.CardinalityInRange(1000, 5000)) |
| 1149 | assert.EqualValues(t, 10000, rb.CardinalityInRange(70000, 80000)) |
| 1150 | assert.EqualValues(t, 100, rb.CardinalityInRange(1000, 1100)) |
| 1151 | assert.EqualValues(t, 4000+10000, rb.CardinalityInRange(0, 100000)) |
| 1152 | assert.EqualValues(t, 0, rb.CardinalityInRange(5000, 70000)) // gap between runs |
| 1153 | assert.EqualValues(t, 4000+10000, rb.CardinalityInRange(1000, 80000)) |
| 1154 | // Partial into both |
| 1155 | assert.EqualValues(t, 3000+5000, rb.CardinalityInRange(2000, 75000)) |
| 1156 | } |
| 1157 | |
| 1158 | // TestCardinalityInRangeRunGapWithinContainer tests CardinalityInRange when |
| 1159 | // two run intervals exist in the same container with a gap between them. |
nothing calls this directly
no test coverage detected
searching dependent graphs…