public void testReversePerm() { final IntArray perms = IntArray.copy(new IntProgression.ArithmeticIterator(0, 9, 1)); IntegersUtils.allPermutations(perms.size(), new IntProcedure() { { testRevPerm(perms); } @Override public void invoke(int i) { perms.swap(i, i + 1); testRevPerm(perms); } }); }
public void testConstructors() { // assumed that method createMapsFromLists returns variants with all constructors int attemptsCount = 20; int maxSize = 50; // int maxSize = 1000; for (int attempt = 0; attempt < attemptsCount; attempt++) { LongArray keys = generateRandomLongArray(maxSize, SORTED_UNIQUE); IntArray values = generateRandomIntArray(keys.size(), UNORDERED); assert keys.size() == values.size(); for (T map : createMapsFromLists(keys, values)) { checkMap(map, keys, values); } } }
public void testRemoveAllAtSorted() { int arSize = 100; int indicesSize = 10; int attempts = 10; for (int attempt = 0; attempt < attempts; attempt++) { array = generateRandomLongArray(arSize, UNORDERED); IntArray indices = generateRandomIntArray(indicesSize, SORTED_UNIQUE, array.size()); if (attempt % 2 == 0) { indices.add(indices.get(indices.size() / 2) + 1); indices.sortUnique(); } LongArray expected = LongArray.copy(array); for (int i = indices.size() - 1; i >= 0; i--) { expected.removeAt(indices.get(i)); } array.removeAllAtSorted(indices.iterator()); CHECK.order(array, expected); } }
for (int j = 0; j < indices.size(); j++) { resArray.removeAt(indices.get(j));
private static void testRevPerm(IntArray perms) { IntArray rev = new IntArray(perms); IntegersUtils.reversePerm(rev); int n = perms.size(); IntArray e = new IntArray(n); for (int i = 0; i < n; ++i) { e.add(perms.get(rev.get(i))); } CHECK.order(IntProgression.arithmetic(0, n).iterator(), e.iterator()); }
public void testRandomCreateFromSorted() { int arrLength = 100; int indicesLength = 50; int maxValue = 1000; LongList base = generateRandomLongArray(arrLength, UNORDERED, maxValue); for (int test = 0; test < 20; test++) { IntArray indices = generateRandomIntArray(indicesLength, SORTED_UNIQUE, arrLength); LongArray expected = LongArray.copy(base); for (int i = indices.size() - 1; i >= 0; i--) { int val = indices.get(i); expected.removeRange(val, val + 1); } WritableLongListRemovingDecorator arr = WritableLongListRemovingDecorator.createFromSorted(base, indices); CHECK.order(arr.iterator(), expected.iterator()); } }
public void testValuesIterator() { IntArray expected = IntArray.create(1, 1, 2, 2, 3, 3); map.putAll(LongArray.create(0, 2, 4, 6, 8, 10), expected); IntArray actual = IntCollections.collectIterable(expected.size(), map.valuesIterator()); actual.sort(); assertEquals(expected, actual); int size = 20, attempts = 10; for (int attempt = 0; attempt < attempts; attempt++) { map.clear(); LongArray keys = generateRandomLongArray(size, SortedStatus.SORTED_UNIQUE, 100, 200); keys.shuffle(myRand); expected = new IntArray(size); for (int i = 0; i < keys.size(); i++) { long key = keys.get(i); expected.add((int) (key * key)); } map.putAll(keys, expected); actual = new IntArray(map.valuesIterator()); actual.sort(); expected.sort(); CHECK.order(actual.toNativeArray(), expected.toNativeArray()); } }