public void testPinnedIteratorExceptions() { try { myArray.pinnedIterator(); fail(); } catch (NoSuchElementException _) { // ok } }
public void testPiteratorSimple() { LongCyclicQueue clq = new LongCyclicQueue(); clq.addAll(LongIterators.range(15)); LongCyclicQueue.PinnedIterator ii = clq.pinnedIterator(3); clq.removeFirst(3); ii.next(); assertEquals(0, ii.index()); ii = clq.pinnedIterator().next(); assertEquals(0, ii.index()); }
assertEquals("(10, 11, 12, 13, 14)", clq.toStringWithPiterators()); LongCyclicQueue.PinnedIterator i1 = clq.pinnedIterator(); assertEquals(0, i1.age()); i1.next(); assertEquals(1, i1.age()); LongCyclicQueue.PinnedIterator i2 = clq.pinnedIterator().next().next().next(); assertEquals(3, i2.age()); LongCyclicQueue.PinnedIterator i3 = clq.pinnedIterator().next().next().next().next().next(); assertEquals("(10*, 11, 12*, 13, 14*)", clq.toStringWithPiterators()); LongCyclicQueue.PinnedIterator i4 = clq.pinnedIterator(); for (int i = 0; i < 7; ++i) i4.next(); assertEquals("[15] (12*, 13, 14, 15, 16, ..., 18*, 19*, ..., 22, 23, 24, 25, 26)", clq.toStringWithPiterators()); clq.pinnedIterator(5); LongCyclicQueue.PinnedIterator it = clq.pinnedIterator(9); assertEquals("[15] (12*, 13, 14, 15, 16, 17*, 18*, 19*, ..., 21*, 22, 23, 24, 25, 26)", clq.toStringWithPiterators()); it.next(); clq.addAll(ap(0, 11, 1)); assertEquals("[11] (0, 1, 2, 3, 4, ..., 6, 7, 8, 9, 10)", clq.toStringWithPiterators()); clq.pinnedIterator(5); assertEquals("[11] (0, 1, 2, 3, 4, 5*, 6, 7, 8, 9, 10)", clq.toStringWithPiterators()); clq.pinnedIterator(8); assertEquals(5, clq.peek()); assertEquals("(5*, 6, 7, 8, 9, 10, 11, 12, 13*)", clq.toStringWithPiterators());
public void testPiteratorIndex2() { int mSize = 15; for (int startIdx = 0; startIdx < mSize; startIdx++) { for (int pinnedIdx = 0; pinnedIdx < mSize; pinnedIdx++) { LongCyclicQueue queue = new LongCyclicQueue(); queue.addAll(LongCollections.repeat(-1, startIdx)); queue.removeFirst(startIdx); queue.addAll(range(mSize)); LongCyclicQueue.PinnedIterator it = queue.pinnedIterator(); checkRemoveAndCatchISE(queue, -1); it.next(); assertEquals(0, it.index()); it.detach(); it = queue.pinnedIterator(pinnedIdx); checkRemoveAndCatchISE(queue, pinnedIdx + 1); it.next(); assertEquals(pinnedIdx != mSize - 1, it.hasNext()); assertEquals("startIdx = " + startIdx, pinnedIdx, it.index()); queue.addAll(1, 2, 3); assertEquals(pinnedIdx, it.index()); if (pinnedIdx != 0) { queue.removeFirst(); assertEquals(pinnedIdx - 1, it.index()); } } } }
public void testPiteratorIndex() { myArray.addAll(LongIterators.range(15)); CHECK.order(range(15), myArray); LongCyclicQueue.PinnedIterator it = myArray.pinnedIterator(); try { it.index(); fail(); } catch (NoSuchElementException _) { // ok } assertEquals(0, it.age()); for (int i = 0; i < 10; i++) { it.next(); assertEquals(i, it.index()); } myArray.addAll(15, 16, 17); assertEquals(9, it.index()); for (int i = 1; i < 10; i++) { myArray.removeFirst(); assertEquals(9 - i, it.index()); } }
public void testAttachDetach() { myArray.add(10); LongCyclicQueue.PinnedIterator it = myArray.pinnedIterator(); checkRemoveAndCatchISE(myArray, -1); assertEquals(10, it.nextValue()); it.detach(); myArray.removeFirst(); assertEquals(10, it.value()); myArray.addAll(LongArray.create(11, 12, 13, 14, 15).iterator()); CHECK.order(myArray, 11, 12, 13, 14, 15); myArray.removeFirst(); myArray.add(16); CHECK.order(myArray, 12, 13, 14, 15, 16); // Note: the value has changed! assertEquals(16, it.value()); it.attach(); assertEquals(16, it.value()); assertFalse(it.hasNext()); checkRemoveAndCatchISE(myArray, -2); checkRemoveAndCatchISE(myArray, 5); myArray.removeFirst(4); myArray.add(17); assertTrue(it.hasNext()); assertEquals(17, it.nextValue()); assertFalse(it.hasNext()); }
public void testPinnedIterator() { myArray.addAll(10, 11, 12, 13); LongCyclicQueue.PinnedIterator it = myArray.pinnedIterator();