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

Function TestIteratorInitialize

roaring64/iterables64_test.go:184–227  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

182}
183
184func TestIteratorInitialize(t *testing.T) {
185 values := []uint64{0, 2, 15, 16, 31, 32, 33, 9999, roaring.MaxUint16, roaring.MaxUint32, roaring.MaxUint32 * 2, math.MaxUint64}
186 bm := New()
187 for _, v := range values {
188 bm.Add(v)
189 }
190
191 t.Run("IntIterator64 stack-allocated", func(t *testing.T) {
192 var it IntIterator64
193 it.Initialize(bm)
194 n := 0
195 for it.HasNext() {
196 assert.Equal(t, values[n], it.Next())
197 n++
198 }
199 assert.Equal(t, len(values), n)
200 })
201
202 t.Run("IntReverseIterator64 stack-allocated", func(t *testing.T) {
203 var it IntReverseIterator64
204 it.Initialize(bm)
205 n := len(values) - 1
206 for it.HasNext() {
207 assert.Equal(t, values[n], it.Next())
208 n--
209 }
210 assert.Equal(t, -1, n)
211 })
212
213 t.Run("ManyIntIterator64 stack-allocated", func(t *testing.T) {
214 var it ManyIntIterator64
215 it.Initialize(bm)
216 buf := make([]uint64, 4)
217 var got []uint64
218 for {
219 n := it.NextMany(buf)
220 if n == 0 {
221 break
222 }
223 got = append(got, buf[:n]...)
224 }
225 assert.Equal(t, values, got)
226 })
227}

Callers

nothing calls this directly

Calls 6

NewFunction · 0.70
HasNextMethod · 0.65
NextMethod · 0.65
NextManyMethod · 0.65
AddMethod · 0.45
InitializeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…