protected void checkExpand(long[] expected, int index, int count, WritableLongList checked) { assert index <= expected.length; checked.expand(index, count); assertEquals(expected.length + count, checked.size()); LongListIterator it = checked.iterator(); for (int i = 0; i < index; i++) { assertEquals(expected[i], it.nextValue()); } it.move(count); for (int i = index; i < expected.length; i++) { assertEquals(expected[i], it.nextValue()); } }
public void testSimple() { for (WritableLongList list: empty()) { for (int i = 0; i < 10000; i++) { list.add(i); } for (int i = 0; i < 10000; i++) { assertEquals(i, list.get(i)); } } }
public void testRemoveByIterator() { for (WritableLongList list: empty()) { int COUNT = 10000; list.addAll(range(COUNT, 0, -1)); int x = 10000; for (WritableLongListIterator ii : list.write()) { assertEquals(x, ii.value()); assertEquals(x, ii.get(0)); if (x > 1) assertEquals(x - 1, ii.get(1)); ii.set(0, 999); assertEquals(999, ii.get(0)); ii.remove(); assertFalse(ii.hasValue()); x--; } } }
public void testGetNextDifferentValueIndex2() { for (WritableLongList list: empty()) { list.insertMultiple(0, 1, 10); list.insert(10, 2); list.insertMultiple(11, 1, 5); list.insertMultiple(16, 3, 3); assertEquals("for index 0", 10, list.getNextDifferentValueIndex(0)); assertEquals("for index 5", 10, list.getNextDifferentValueIndex(5)); assertEquals("for index 9", 10, list.getNextDifferentValueIndex(9)); assertEquals("for index 10", 11, list.getNextDifferentValueIndex(10)); assertEquals("for index 11", 16, list.getNextDifferentValueIndex(11)); assertEquals("for index 16", list.size(), list.getNextDifferentValueIndex(16)); assertEquals("for index 18", list.size(), list.getNextDifferentValueIndex(18)); // check for IOOBE try { list.getNextDifferentValueIndex(-1); fail("not caught OOBE for index - 1"); } catch(IndexOutOfBoundsException ex) { } try { list.getNextDifferentValueIndex(list.size()); fail("not caught OOBE for index = size"); } catch(IndexOutOfBoundsException ex) { } } }
public void testUpdate() { int size = 100, maxVal = Integer.MAX_VALUE; for (int attempt = 0; attempt < 10; attempt++) { long[] array = generateRandomLongArray(size, UNORDERED, maxVal).extractHostArray(); for (WritableLongList list: createWritableLongLists(array)) { long[] values = Arrays.copyOf(array, array.length); if (!(list instanceof AbstractWritableLongList)) return; AbstractWritableLongList abstractList = (AbstractWritableLongList)list; int index = myRand.nextInt(size); abstractList.update(index, myRand.nextInt(), LongFunctions.NEG); values[index] = -values[index]; CHECK.order(abstractList, values); int count = myRand.nextInt(size); long value = myRand.nextInt(); abstractList.update(size + count, value, LongFunctions.NEG); assertEquals(size + count + 1, abstractList.size()); CHECK.order(abstractList.subList(0, size), values); int newSize = abstractList.size() - 1; CHECK.order(LongCollections.repeat(value, count), abstractList.subList(size, newSize)); assertEquals(abstractList.get(size + count), -value); } } }
public void testIndexOf() { for (WritableLongList list: createWritableLongLists( new LongArray(LongProgression.arithmetic(99, 100, -1)).extractHostArray())) { for (int i = 0; i < 100; i++) { assertEquals(99 - i, list.indexOf(i)); } } }
public void testIteratorRemove2() { for (WritableLongList list: createWritableLongLists(ap(0, 10, 1))) { WritableLongListIterator it = list.iterator(); it.next().next().next().next(); assertEquals(3, it.value()); it.remove(); checkJustRemoved(it); assertEquals(4, it.nextValue()); } }
public void testIteratorRemove3() { for (WritableLongList list: createWritableLongLists(ap(0, 10, 1))) { WritableLongListIterator it = list.iterator(); it.next().next(); it.remove(); checkJustRemoved(it); assertEquals(2, it.nextValue()); it.move(7); assertEquals(9, it.value()); it.remove(); assertFalse(it.hasValue()); checkCollection(list, 0, 2, 3, 4, 5, 6, 7, 8); } }
public void testIteratorSkip() { for (WritableLongList list: empty()) { for (int i = 0; i < 10000; i++) list.add(i); WritableLongListIterator ii = list.iterator(); for (int i = 0; i < 100; i++) { assertTrue(ii.hasNext()); assertEquals(100 * i, ii.nextValue()); ii.move(99); } assertFalse(ii.hasNext()); } }
public void testBoundary() { for (WritableLongList list: empty()) { list.apply(0, 0, null); list.clear(); try { list.get(0); fail(); } catch (IndexOutOfBoundsException e) { } list.remove(0); list.removeRange(0, 0); assertEquals(list, list.subList(0, 0)); list.toNativeArray(0, new long[0], 0, 0); } }
public void testIteratorWrite() { long[] values = {1, 1, 1, 2, 2, 3, 3, 3, 3}; LongArray expected = LongArray.create(values); for (WritableLongList source : createWritableLongLists(values)) { LongArray result = new LongArray(); for (WritableLongListIterator it : source.write()) { result.add(it.value()); it.set(0, -1); } CHECK.order(source, LongCollections.repeat(-1, source.size())); assertEquals(expected, result); } }
public void testSubList() { for (WritableLongList list: empty()) { list.addAll(range(0, 10000)); checkList(list.subList(10, 20), ap(10, 10, 1)); checkList(list.subList(10, 10000), ap(10, 9990, 1)); checkList(list.subList(9990, 10000), ap(9990, 10, 1)); checkList(list.subList(9990, 9990)); assertEquals(list, list.subList(0, 10000)); assertTrue(list == list.subList(0, 10000)); } }
public void testAdd() { for (WritableLongList list: empty()) { for (int j = 0; j < 2; j++) { list.addAll(0, 1, 2); checkCollection(list, 0, 1, 2); list.addAll(LongArray.create(3, 4, 5, 6)); checkCollection(list, 0, 1, 2, 3, 4, 5, 6); list.insert(3, 100); checkCollection(list, 0, 1, 2, 100, 3, 4, 5, 6); list.insertMultiple(1, -1, 3); checkCollection(list, 0, -1, -1, -1, 1, 2, 100, 3, 4, 5, 6); list.clear(); assertEquals(0, list.size()); CHECK.order(list); list.add(0); checkCollection(list, 0); list.add(0); checkCollection(list, 0, 0); list.clear(); for (int i = 0; i < 100; i++) { list.add(i); checkCollection(list, ap(0, i + 1, 1)); } list.addAll(list); checkCollection(list.subList(0, 100), ap(0, 100, 1)); checkCollection(list.subList(100, 200), ap(0, 100, 1)); list.clear(); } } }