(t *testing.T, con container)
| 70 | } |
| 71 | |
| 72 | func testContainerIteratorAdvance(t *testing.T, con container) { |
| 73 | values := []uint16{1, 2, 15, 16, 31, 32, 33, 9999} |
| 74 | for _, v := range values { |
| 75 | con.iadd(v) |
| 76 | } |
| 77 | |
| 78 | cases := []struct { |
| 79 | minval uint16 |
| 80 | expected uint16 |
| 81 | }{ |
| 82 | {0, 1}, |
| 83 | {1, 1}, |
| 84 | {2, 2}, |
| 85 | {3, 15}, |
| 86 | {15, 15}, |
| 87 | {30, 31}, |
| 88 | {31, 31}, |
| 89 | {33, 33}, |
| 90 | {34, 9999}, |
| 91 | {9998, 9999}, |
| 92 | {9999, 9999}, |
| 93 | } |
| 94 | |
| 95 | t.Run("advance by using a new short iterator", func(t *testing.T) { |
| 96 | for _, c := range cases { |
| 97 | i := con.getShortIterator() |
| 98 | i.advanceIfNeeded(c.minval) |
| 99 | |
| 100 | assert.True(t, i.hasNext()) |
| 101 | assert.Equal(t, c.expected, i.peekNext()) |
| 102 | } |
| 103 | }) |
| 104 | |
| 105 | t.Run("advance by using the same short iterator", func(t *testing.T) { |
| 106 | i := con.getShortIterator() |
| 107 | |
| 108 | for _, c := range cases { |
| 109 | i.advanceIfNeeded(c.minval) |
| 110 | |
| 111 | assert.True(t, i.hasNext()) |
| 112 | assert.Equal(t, c.expected, i.peekNext()) |
| 113 | } |
| 114 | }) |
| 115 | |
| 116 | t.Run("advance out of a container value", func(t *testing.T) { |
| 117 | i := con.getShortIterator() |
| 118 | |
| 119 | i.advanceIfNeeded(33) |
| 120 | assert.True(t, i.hasNext()) |
| 121 | assert.EqualValues(t, 33, i.peekNext()) |
| 122 | |
| 123 | i.advanceIfNeeded(MaxUint16 - 1) |
| 124 | assert.False(t, i.hasNext()) |
| 125 | |
| 126 | i.advanceIfNeeded(MaxUint16) |
| 127 | assert.False(t, i.hasNext()) |
| 128 | }) |
| 129 |
no test coverage detected
searching dependent graphs…