@Test
public void testIteration() {
ConcurrentLongHashMap<String> map = new ConcurrentLongHashMap<>();
assertEquals(map.keys(), Collections.emptyList());
assertEquals(map.values(), Collections.emptyList());
map.put(0, "zero");
assertEquals(map.keys(), Arrays.asList(0L));
assertEquals(map.values(), Arrays.asList("zero"));
map.remove(0);
assertEquals(map.keys(), Collections.emptyList());
assertEquals(map.values(), Collections.emptyList());
map.put(0, "zero");
map.put(1, "one");
map.put(2, "two");
List<Long> keys = map.keys();
Collections.sort(keys);
assertEquals(keys, Arrays.asList(0L, 1L, 2L));
List<String> values = map.values();
Collections.sort(values);
assertEquals(values, Arrays.asList("one", "two", "zero"));
map.put(1, "uno");
keys = map.keys();
Collections.sort(keys);
assertEquals(keys, Arrays.asList(0L, 1L, 2L));
values = map.values();
Collections.sort(values);
assertEquals(values, Arrays.asList("two", "uno", "zero"));
map.clear();
assertTrue(map.isEmpty());
}