test[hashmap]: test

This commit is contained in:
godotg
2024-07-02 16:55:17 +08:00
parent 7af6dede5f
commit 088691082f
@@ -325,41 +325,186 @@ public class HashMapTest {
@Test
public void intIntEqualsTest() {
var map = Map.of(1, 2, 3, 4, 5, 6, Integer.MAX_VALUE, Integer.MIN_VALUE);
var map = Map.of(1, 2, 3, 4, 5, 6, Integer.MAX_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE);
var myMap = new HashMapIntInt();
myMap.putAll(map);
Assert.assertEquals(map, myMap);
Assert.assertFalse(myMap.isEmpty());
for (var entry : map.entrySet()) {
Assert.assertTrue(myMap.containsKey(entry.getKey()));
Assert.assertTrue(myMap.containsValue(entry.getValue()));
Assert.assertNotNull(myMap.get(entry.getKey()));
}
myMap.clear();
Assert.assertTrue(myMap.isEmpty());
for (int i = 1; i <= 1000; i++) {
for (var entry : map.entrySet()) {
myMap.put(entry.getKey() * i, entry.getValue() * i);
}
}
var newMap = new HashMap<>(myMap);
for (var key : myMap.keySet()) {
Assert.assertTrue(newMap.containsKey(key));
}
for (var value : myMap.values()) {
Assert.assertTrue(newMap.containsValue(value));
}
for (var entry : myMap.entrySet()) {
Assert.assertTrue(newMap.containsKey(entry.getKey()));
Assert.assertTrue(newMap.containsValue(entry.getValue()));
}
Assert.assertEquals(myMap, newMap);
for (var key : newMap.keySet()) {
myMap.remove(key);
}
Assert.assertTrue(myMap.isEmpty());
}
@Test
public void intLongEqualsTest() {
var map = Map.of(1, 2L, 3, 4L, 5, 6L, Integer.MAX_VALUE, Long.MIN_VALUE);
var map = Map.of(1, 2L, 3, 4L, 5, 6L, Integer.MAX_VALUE, Long.MIN_VALUE, Integer.MIN_VALUE, Long.MAX_VALUE);
var myMap = new HashMapIntLong();
myMap.putAll(map);
Assert.assertEquals(map, myMap);
Assert.assertFalse(myMap.isEmpty());
for (var entry : map.entrySet()) {
Assert.assertTrue(myMap.containsKey(entry.getKey()));
Assert.assertTrue(myMap.containsValue(entry.getValue()));
Assert.assertNotNull(myMap.get(entry.getKey()));
}
myMap.clear();
Assert.assertTrue(myMap.isEmpty());
for (int i = 1; i <= 1000; i++) {
for (var entry : map.entrySet()) {
myMap.put(entry.getKey() * i, entry.getValue() * i);
}
}
var newMap = new HashMap<>(myMap);
for (var key : myMap.keySet()) {
Assert.assertTrue(newMap.containsKey(key));
}
for (var value : myMap.values()) {
Assert.assertTrue(newMap.containsValue(value));
}
for (var entry : myMap.entrySet()) {
Assert.assertTrue(newMap.containsKey(entry.getKey()));
Assert.assertTrue(newMap.containsValue(entry.getValue()));
}
Assert.assertEquals(myMap, newMap);
for (var key : newMap.keySet()) {
myMap.remove(key);
}
Assert.assertTrue(myMap.isEmpty());
}
@Test
public void intShortEqualsTest() {
var map = Map.of(1, (short) 2, 3, (short) 4, 5, (short) 6, Integer.MAX_VALUE, Short.MIN_VALUE);
var map = Map.of(1, (short) 2, 3, (short) 4, 5, (short) 6, Integer.MAX_VALUE, Short.MIN_VALUE, Integer.MIN_VALUE, Short.MAX_VALUE);
var myMap = new HashMapIntShort();
myMap.putAll(map);
Assert.assertEquals(map, myMap);
Assert.assertFalse(myMap.isEmpty());
for (var entry : map.entrySet()) {
Assert.assertTrue(myMap.containsKey(entry.getKey()));
Assert.assertTrue(myMap.containsValue(entry.getValue()));
Assert.assertNotNull(myMap.get(entry.getKey()));
}
myMap.clear();
Assert.assertTrue(myMap.isEmpty());
for (int i = 1; i <= 1000; i++) {
for (var entry : map.entrySet()) {
myMap.put(entry.getKey() * i, (short) (entry.getValue() * i));
}
}
var newMap = new HashMap<>(myMap);
for (var key : myMap.keySet()) {
Assert.assertTrue(newMap.containsKey(key));
}
for (var value : myMap.values()) {
Assert.assertTrue(newMap.containsValue(value));
}
for (var entry : myMap.entrySet()) {
Assert.assertTrue(newMap.containsKey(entry.getKey()));
Assert.assertTrue(newMap.containsValue(entry.getValue()));
}
Assert.assertEquals(myMap, newMap);
for (var key : newMap.keySet()) {
myMap.remove(key);
}
Assert.assertTrue(myMap.isEmpty());
}
@Test
public void longIntEqualsTest() {
var map = Map.of(1L, 2, 3L, 4, 5L, 6, Long.MAX_VALUE, Integer.MIN_VALUE);
var map = Map.of(1L, 2, 3L, 4, 5L, 6, Long.MAX_VALUE, Integer.MIN_VALUE, Long.MIN_VALUE, Integer.MAX_VALUE);
var myMap = new HashMapLongInt();
myMap.putAll(map);
Assert.assertEquals(map, myMap);
Assert.assertFalse(myMap.isEmpty());
for (var entry : map.entrySet()) {
Assert.assertTrue(myMap.containsKey(entry.getKey()));
Assert.assertTrue(myMap.containsValue(entry.getValue()));
Assert.assertNotNull(myMap.get(entry.getKey()));
}
myMap.clear();
Assert.assertTrue(myMap.isEmpty());
for (int i = 1; i <= 1000; i++) {
for (var entry : map.entrySet()) {
myMap.put(entry.getKey() * i, entry.getValue() * i);
}
}
var newMap = new HashMap<>(myMap);
for (var key : myMap.keySet()) {
Assert.assertTrue(newMap.containsKey(key));
}
for (var value : myMap.values()) {
Assert.assertTrue(newMap.containsValue(value));
}
for (var entry : myMap.entrySet()) {
Assert.assertTrue(newMap.containsKey(entry.getKey()));
Assert.assertTrue(newMap.containsValue(entry.getValue()));
}
Assert.assertEquals(myMap, newMap);
for (var key : newMap.keySet()) {
myMap.remove(key);
}
Assert.assertTrue(myMap.isEmpty());
}
@Test
public void longLongEqualsTest() {
var map = Map.of(1L, 2L, 3L, 4L, 5L, 6L, Long.MAX_VALUE, Long.MIN_VALUE);
var map = Map.of(1L, 2L, 3L, 4L, 5L, 6L, Long.MAX_VALUE, Long.MIN_VALUE, Long.MIN_VALUE, Long.MAX_VALUE);
var myMap = new HashMapLongLong();
myMap.putAll(map);
Assert.assertEquals(map, myMap);
Assert.assertFalse(myMap.isEmpty());
for (var entry : map.entrySet()) {
Assert.assertTrue(myMap.containsKey(entry.getKey()));
Assert.assertTrue(myMap.containsValue(entry.getValue()));
Assert.assertNotNull(myMap.get(entry.getKey()));
}
myMap.clear();
Assert.assertTrue(myMap.isEmpty());
for (int i = 1; i <= 1000; i++) {
for (var entry : map.entrySet()) {
myMap.put(entry.getKey() * i, entry.getValue() * i);
}
}
var newMap = new HashMap<>(myMap);
for (var key : myMap.keySet()) {
Assert.assertTrue(newMap.containsKey(key));
}
for (var value : myMap.values()) {
Assert.assertTrue(newMap.containsValue(value));
}
for (var entry : myMap.entrySet()) {
Assert.assertTrue(newMap.containsKey(entry.getKey()));
Assert.assertTrue(newMap.containsValue(entry.getValue()));
}
Assert.assertEquals(myMap, newMap);
for (var key : newMap.keySet()) {
myMap.remove(key);
}
Assert.assertTrue(myMap.isEmpty());
}
}