@Override public List<LongListIterator> get(long... values) { List<? extends LongList> lists = createLongListVariants(values); List<LongListIterator> res = new ArrayList<LongListIterator>(lists.size()); for (LongList list : lists) { res.add(list.iterator()); } return res; } });
public void init(LongArray values) { list = createLongListVariants(values.toNativeArray()).get(0); }
public void testGetLast() { for (int attempt = 0; attempt < 10; attempt++) { long[] values = generateRandomLongArray(1000, UNORDERED).extractHostArray(); for (LongList list: createLongListVariants(values)) { if (!(list instanceof AbstractLongList)) return; AbstractLongList abstractList = (AbstractLongList)list; for (int j = 0; j < values.length; j++) { assertEquals(abstractList.getLast(j), values[values.length - j - 1]); } } } }
public void testToNativeArray() { int attemptsCount = 5, length = 25; for (int attempt = 0; attempt < attemptsCount; attempt++) { long[] values = generateRandomLongArray(length, UNORDERED).extractHostArray(); for (T list : createLongListVariants(values)) { for (int startIdx = 0; startIdx < length; startIdx++) { for(int endIdx = startIdx + 1; endIdx < length; endIdx++) { long[] expected = LongCollections.repeat(-1, length).toNativeArray(); long[] actual = Arrays.copyOf(expected, expected.length); int len = endIdx - startIdx; System.arraycopy(values, startIdx, expected, startIdx, len); list.toNativeArray(startIdx, actual, startIdx, len); CHECK.order(actual, expected); } } } } }
protected void checkValues(long... values) { for (LongList arr : createLongListVariants(values)) { int length = values.length; assertEquals(length == 0, arr.isEmpty()); assertEquals(LongCollections.isSorted(values, 0, length), arr.isSorted()); boolean res = LongCollections.isSortedUnique(false, values, 0, length) == 0; assertEquals(res, arr.isSortedUnique()); checkCollection(arr, values); } }
public void testGet() { for (int attempt = 0; attempt < 10; attempt++) { long[] values = generateRandomLongArray(1000, UNORDERED).extractHostArray(); for (LongList list: createLongListVariants(values)) { if (!(list instanceof AbstractLongList)) return; IntArray indices = generateRandomIntArray(100, UNORDERED, 0, 1000); AbstractLongList abstractList = (AbstractLongList)list; LongList actual = abstractList.get(indices); for (int j = 0; j < actual.size(); j++) { assertEquals(abstractList.get(indices.get(j)), actual.get(j)); } } } }
private void checkToMethods(long... values) { LongList expected = LongArray.create(values); int length = values.length; long[] tmp = new long[length]; for (LongList arr : createLongListVariants(values)) { CHECK.order(expected.toNativeArray(0, tmp, 0, length), arr.toNativeArray(0, tmp, 0, length)); CHECK.order(expected.toNativeArray(), arr.toNativeArray()); CHECK.order(expected.toList(), arr.toList()); } }
public void testGetNextDifferentValueIndex() { for (LongList arr : createLongListVariants(0, 1, 1, 2, 2, 2, 3, 4, 5, 5, 5)) { assertEquals(1, arr.getNextDifferentValueIndex(0)); assertEquals(3, arr.getNextDifferentValueIndex(1)); assertEquals(6, arr.getNextDifferentValueIndex(3)); assertEquals(7, arr.getNextDifferentValueIndex(6)); assertEquals(arr.size(), arr.getNextDifferentValueIndex(8)); } }
protected void checkGetMethods(long... values) { LongList expected = LongArray.create(values); for (LongList arr : createLongListVariants(values)) { for (int i = 0; i < arr.size(); i++) { assertEquals(expected.get(i), arr.get(i)); } for (int i = 0; i < arr.size(); i++) { for (int j = -1; j < 2; j++) { long value = arr.get(i) + j; assertEquals(expected.indexOf(value), arr.indexOf(value)); assertEquals(expected.contains(value), arr.contains(value)); } } } }