public void testIteratorConcurrentModificationException2() { // assumed that method createMapsFromLists returns variants with all constructors int attemptsCount = 10; 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); for (T map : createMapsFromLists(keys, values)) { int keyForAdd = 0; while (map.containsKey(keyForAdd)) keyForAdd = myRand.nextInt(); LongIterator keysIt = map.keysIterator(); IntIterator valuesIt = map.valuesIterator(); LongIntIterator it = map.iterator(); map.add(keyForAdd, keyForAdd * keyForAdd); checkIteratorThrowsCME(keysIt); checkIteratorThrowsCME(valuesIt); checkIteratorThrowsCME(it); map.remove(keyForAdd); } } }
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()); } }
public void checkMap(T map, LongList keys, IntList values) { assertEquals(keys.size(), map.size()); assertEquals(keys.isEmpty(), map.isEmpty()); for (int i = 0; i < keys.size(); i++) { assertEquals(values.get(i), map.get(keys.get(i))); } LongArray mapKeys = collectIterable(map.size(), map.keysIterator()); CHECK.unordered(mapKeys, keys); IntArray mapValues = IntCollections.collectIterable(map.size(), map.valuesIterator()); CHECK.unordered(mapValues, values); }
public void testIterators() { // assumed that method createMapsFromLists returns variants with all constructors int attemptsCount = 10; 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); for (T map : createMapsFromLists(keys, values)) { LongArray actualKeys = LongCollections.collectIterables(map.size(), map.keysIterator()); IntArray actualValues = IntCollections.collectIterable(map.size(), map.valuesIterator()); CHECK.unordered(actualKeys, keys); CHECK.unordered(actualValues, values); actualKeys.clear(); actualValues.clear(); for (LongIntIterator iter : map) { actualKeys.add(iter.left()); actualValues.add(iter.right()); } CHECK.unordered(actualKeys, keys); CHECK.unordered(actualValues, values); } } }