public void testPutRandom() {
final int N_KEYS = 1000;
LongArray keySet = new LongArray(N_KEYS);
int prime0 = 47;
for (int n = 0; n < N_KEYS; ++n) {
int key = myRand.nextInt(N_KEYS);
boolean hasAdded = keySet.contains(key);
assertEquals(hasAdded, map.containsKey(key));
if (!hasAdded) {
int value = key % prime0;
long added = map.put(key, value);
assertEquals(value, added);
keySet.add(key);
}
}
keySet.sort();
compare.order(keySet.toNativeArray(), map.getKeys().toNativeArray());
checkMapValuesEqualKeysMod(prime0);
int[] primes = new int[] { 53, 59, 61, 67, 71 };
int oldPrime = prime0;
for (int prime : primes) {
for (Long key : map.getKeys().toList()) {
long put = map.put(key, key % prime);
assertEquals("key=" + key + " | prime=" + prime, put, key % oldPrime);
}
compare.order(keySet.toNativeArray(), map.getKeys().toNativeArray());
checkMapValuesEqualKeysMod(prime);
oldPrime = prime;
}
}