public void testToTableString() { long[][] keysArray = {{}, {-1}, {0, 1, 2, 3}, {10, 20, 30}, {1, 3, 5, 7, 11, 13}}; for (long[] keys : keysArray) { IntArray values = new IntArray(keys.length); for (long key : keys) { values.add((int) (key * key)); } for (T map : createMapsFromLists(new LongArray(keys), values)) { String output; if (map instanceof AbstractWritableLongIntMap) { output = ((AbstractWritableLongIntMap) map).toTableString(); } else if (map instanceof WritableLongIntMapFromLongObjMap) { output = ((WritableLongIntMapFromLongObjMap) map).toTableString(); } else { continue; } int idx = 0, commasCount = 0; for (; idx < output.length() && output.charAt(idx) != '\n'; idx++) { if (output.charAt(idx) == ',') commasCount++; } assertEquals(Math.max(0, keys.length - 1), commasCount); assertFalse(idx == output.length()); idx++; for (; idx < output.length() && output.charAt(idx) != '\n'; idx++) { if (output.charAt(idx) == ',') commasCount--; } assertEquals(0, commasCount); } } }
public void testEquals2() { int attemptsCount = 20; int maxVal = 10; int mapSize = 200; for (int attempt = 0; attempt < attemptsCount; attempt++) { LongArray keys = generateRandomLongArray(mapSize, SORTED_UNIQUE); IntArray values = generateRandomIntArray(keys.size(), UNORDERED, maxVal); for (T map0 : createMapsFromLists(keys, values)) { assertTrue(map0.equals(map0)); assertFalse(map0.equals(null)); assertFalse(map0.equals(LongIntMap.EMPTY)); assertTrue(map0.equals(map0)); T expected = createMap(); expected.putAllKeys(keys.subList(0, keys.size() - 1), values); expected.put(keys.getLast(0), values.getLast(0) != 0 ? 0 : 1); assertFalse(map0.equals(expected)); for (T map1 : createMapsFromLists(keys, values)) { assertEquals(map1, map0); } } } } }
public void testRemoveKeyValue() { int size = 20, maxKey = size * 2; LongList keys = LongProgression.range(0, maxKey, maxKey / size); IntList values = new IntArray(limit(cycle(0, 1, 2, 3), 20)); for (T map0 : createMapsFromLists(keys, values)) { for (int i = 0; i < maxKey; i++) { assertFalse(map0.remove(i, -1)); if (keys.contains(i)) { int val = (i/2) % 4; if (val == 0) { assertTrue(map0.remove(i, 0)); } else { assertFalse(map0.remove(i, 0)); assertTrue(map0.remove(i, val)); } } else { assertFalse(map0.remove(i, 0)); assertFalse(map0.remove(i, 1)); } } } }
public void checkPutIfAbsent(LongList keys) { map.clear(); for (int i = 0; i < keys.size(); i++) { long key = keys.get(i); int idx = keys.subList(0, i).indexOf(key); if (idx >= 0) { assertEquals(idx, map.get(key)); assertFalse(map.putIfAbsent(key, i)); assertEquals(idx, map.get(key)); } else { assertEquals(LongIntMap.DEFAULT_VALUE, map.get(key)); assertTrue(map.putIfAbsent(key, i)); assertEquals(i, map.get(key)); } } }