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

Function TestRleRunReverseIterator16

runcontainer_test.go:311–381  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

309}
310
311func TestRleRunReverseIterator16(t *testing.T) {
312 t.Run("RunReverseIterator16 unit tests for next, hasNext, and peekNext should pass", func(t *testing.T) {
313 {
314 rc := newRunContainer16()
315 it := rc.newRunReverseIterator16()
316 assert.False(t, it.hasNext())
317 assert.Panics(t, func() { it.next() })
318 }
319 {
320 rc := newRunContainer16TakeOwnership([]interval16{newInterval16Range(0, 0)})
321 it := rc.newRunReverseIterator16()
322 assert.True(t, it.hasNext())
323 assert.EqualValues(t, uint16(0), it.next())
324 assert.Panics(t, func() { it.next() })
325 assert.False(t, it.hasNext())
326 assert.Panics(t, func() { it.next() })
327 }
328 {
329 rc := newRunContainer16TakeOwnership([]interval16{newInterval16Range(4, 4)})
330 it := rc.newRunReverseIterator16()
331 assert.True(t, it.hasNext())
332 assert.EqualValues(t, uint16(4), it.next())
333 assert.False(t, it.hasNext())
334 }
335 {
336 rc := newRunContainer16TakeOwnership([]interval16{newInterval16Range(MaxUint16, MaxUint16)})
337 it := rc.newRunReverseIterator16()
338 assert.True(t, it.hasNext())
339 assert.EqualValues(t, uint16(MaxUint16), it.next())
340 assert.False(t, it.hasNext())
341 }
342 {
343 rc := newRunContainer16TakeOwnership([]interval16{newInterval16Range(4, 9)})
344 it := rc.newRunReverseIterator16()
345 assert.True(t, it.hasNext())
346 for i := 9; i >= 4; i-- {
347 assert.Equal(t, uint16(i), it.next())
348 if i > 4 {
349 assert.True(t, it.hasNext())
350 } else if i == 4 {
351 assert.False(t, it.hasNext())
352 }
353 }
354 assert.False(t, it.hasNext())
355 assert.Panics(t, func() { it.next() })
356 }
357 {
358 rc := newRunContainer16TakeOwnership([]interval16{
359 newInterval16Range(0, 0),
360 newInterval16Range(2, 2),
361 newInterval16Range(4, 4),
362 newInterval16Range(6, 7),
363 newInterval16Range(10, 12),
364 newInterval16Range(MaxUint16, MaxUint16),
365 })
366
367 it := rc.newRunReverseIterator16()
368 assert.Equal(t, uint16(MaxUint16), it.next())

Callers

nothing calls this directly

Calls 6

newRunContainer16Function · 0.85
newInterval16RangeFunction · 0.85
hasNextMethod · 0.65
nextMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…