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()); i3.next().next().next().next().next(); assertEquals("[15] (12*, 13, 14, 15, 16, ..., 19*, ..., 22, 23, 24, 25, 26)", clq.toStringWithPiterators()); 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()); 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(); assertEquals("[15] (12*, 13, 14, 15, 16, 17*, 18*, 19*, ..., 21*, 22, 23, 24, 25, 26)", clq.toStringWithPiterators()); it.next(); assertEquals("[15] (12*, 13, 14, 15, 16, 17*, 18*, 19*, ..., 22*, 23, 24, 25, 26)", clq.toStringWithPiterators());
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 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()); } } } }
assertTrue(it.hasNext()); assertEquals(10, it.nextValue()); assertEquals(11, it.nextValue()); assertEquals(11, it.value()); assertEquals(11, it.value()); assertEquals(11, myArray.get(0)); assertEquals(11, myArray.peek()); assertEquals(12, it.nextValue()); assertEquals(12, it.value()); assertTrue(it.hasNext()); assertEquals(13, it.nextValue()); assertTrue(it.hasNext()); assertEquals(14, it.nextValue()); assertTrue(it.hasNext()); assertEquals(15, it.nextValue()); assertFalse(it.hasNext()); assertEquals(15, it.value()); assertFalse(it.hasNext()); assertEquals(15, it.value()); assertFalse(it.hasNext()); assertEquals(15, it.value()); assertFalse(it.hasNext());
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 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()); }