fix LongLongHashMap.forEachOrdered for negative values

This commit is contained in:
2019-09-07 16:51:30 +02:00
parent 4d92197423
commit 452ef2020d
2 changed files with 51 additions and 0 deletions

View File

@@ -131,6 +131,54 @@ public class LongLongHashMapTest {
actualOrderOfKeys.add(k);
});
Assertions.assertTrue(actualOrderOfKeys.isSorted(), "keys are sorted");
Assertions.assertEquals(LongList.intersection(actualOrderOfKeys, entries).size(), entries.size(),
"all keys were visited");
final LongList additionalKeys = new LongList(actualOrderOfKeys);
additionalKeys.removeAll(entries);
Assertions.assertEquals(additionalKeys, LongList.of(), "no additional keys were visited");
}
@Test
public void testForEachOrderedOnlyNegativeValues() {
final LongLongHashMap map = new LongLongHashMap();
final LongList entries = LongList.of(LongStream.range(-20, -5).toArray());
entries.stream().forEachOrdered(l -> {
map.put(l, 2 * l);
});
final LongList actualOrderOfKeys = new LongList();
map.forEachOrdered((k, v) -> {
Assertions.assertEquals(k * 2, v, "value is key*2");
Assertions.assertTrue(entries.indexOf(k) >= 0, "value " + k + " in entries: " + entries);
actualOrderOfKeys.add(k);
});
Assertions.assertTrue(actualOrderOfKeys.isSorted(), "keys are sorted");
Assertions.assertEquals(LongList.intersection(actualOrderOfKeys, entries).size(), entries.size(),
"all keys were visited");
final LongList additionalKeys = new LongList(actualOrderOfKeys);
additionalKeys.removeAll(entries);
Assertions.assertEquals(additionalKeys, LongList.of(), "no additional keys were visited");
}
@Test
public void testForEachOrderedOnlyNegativeValues2() {
final LongLongHashMap map = new LongLongHashMap();
final LongList entries = LongList.of(LongStream.range(-20, -5).toArray());
entries.stream().forEachOrdered(l -> {
map.put(l, 2 * l);
});
final LongList actualOrderOfKeys = new LongList();
map.forEachOrdered((k, v) -> {
Assertions.assertEquals(k * 2, v, "value is key*2");
Assertions.assertTrue(entries.indexOf(k) >= 0, "value " + k + " in entries: " + entries);
actualOrderOfKeys.add(k);
});
Assertions.assertTrue(actualOrderOfKeys.isSorted(), "keys are sorted");
}