0

test: HashMaps

This commit is contained in:
2021-10-08 15:17:54 +03:00
parent 262d4ee984
commit 26d6fee242
3 changed files with 218 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
plugins {
id 'java'
id 'jacoco'
}
project.group = 'ghast'
@@ -49,3 +50,11 @@ dependencies {
test {
useJUnitPlatform()
}
jacoco {
toolVersion = '0.8.5'
}
jacocoTestReport {
dependsOn test
}

View File

@@ -17,20 +17,20 @@ public final class HashMaps {
}
public static <K, V> Map<K, V> of(K k1, V v1) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(1) {{
put(k1, v1);
}};
}
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(2) {{
put(k1, v1);
put(k2, v2);
}};
}
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(3) {{
put(k1, v1);
put(k2, v2);
put(k3, v3);
@@ -38,7 +38,7 @@ public final class HashMaps {
}
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(4) {{
put(k1, v1);
put(k2, v2);
put(k3, v3);
@@ -47,7 +47,7 @@ public final class HashMaps {
}
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(5) {{
put(k1, v1);
put(k2, v2);
put(k3, v3);
@@ -58,7 +58,7 @@ public final class HashMaps {
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
K k6, V v6) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(6) {{
put(k1, v1);
put(k2, v2);
put(k3, v3);
@@ -70,7 +70,7 @@ public final class HashMaps {
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
K k6, V v6, K k7, V v7) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(7) {{
put(k1, v1);
put(k2, v2);
put(k3, v3);
@@ -83,7 +83,7 @@ public final class HashMaps {
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
K k6, V v6, K k7, V v7, K k8, V v8) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(8) {{
put(k1, v1);
put(k2, v2);
put(k3, v3);
@@ -97,7 +97,7 @@ public final class HashMaps {
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(9) {{
put(k1, v1);
put(k2, v2);
put(k3, v3);
@@ -112,7 +112,7 @@ public final class HashMaps {
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5,
K k6, V v6, K k7, V v7, K k8, V v8, K k9, V v9, K k10, V v10) {
return new HashMap<K, V>() {{
return new HashMap<K, V>(10) {{
put(k1, v1);
put(k2, v2);
put(k3, v3);
@@ -145,12 +145,27 @@ public final class HashMaps {
}
@AllArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
private static class SimpleEntry<K, V> implements Map.Entry<K, V> {
private final K key;
private V value;
@Override
public K getKey() {
return key;
}
@Override
public V getValue() {
return value;
}
@Override
public V setValue(V value) {
V prev = this.value;
this.value = value;
return prev;
}
}
}

View File

@@ -0,0 +1,182 @@
package ghast;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
class HashMapsTest {
@Test
void of0() {
Map<Object, Object> map = HashMaps.of();
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertTrue(map.isEmpty());
}
@Test
void of1() {
Map<Object, Object> map = HashMaps.of("key1", "val1");
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(1, map.size());
}
@Test
void of2() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(2, map.size());
}
@Test
void of3() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2",
"key3", "val3"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(3, map.size());
}
@Test
void of4() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2",
"key3", "val3",
"key4", "val4"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(4, map.size());
}
@Test
void of5() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2",
"key3", "val3",
"key4", "val4",
"key5", "val5"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(5, map.size());
}
@Test
void of6() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2",
"key3", "val3",
"key4", "val4",
"key5", "val5",
"key6", "val6"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(6, map.size());
}
@Test
void of7() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2",
"key3", "val3",
"key4", "val4",
"key5", "val5",
"key6", "val6",
"key7", "val7"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(7, map.size());
}
@Test
void of8() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2",
"key3", "val3",
"key4", "val4",
"key5", "val5",
"key6", "val6",
"key7", "val7",
"key8", "val8"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(8, map.size());
}
@Test
void of9() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2",
"key3", "val3",
"key4", "val4",
"key5", "val5",
"key6", "val6",
"key7", "val7",
"key8", "val8",
"key9", "val9"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(9, map.size());
}
@Test
void of10() {
Map<Object, Object> map = HashMaps.of(
"key1", "val1",
"key2", "val2",
"key3", "val3",
"key4", "val4",
"key5", "val5",
"key6", "val6",
"key7", "val7",
"key8", "val8",
"key9", "val9",
"key10", "val10"
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(10, map.size());
}
@Test
void ofEntries() {
Map<Object, Object> map = HashMaps.ofEntries(
HashMaps.entry("key1", "val1"),
HashMaps.entry("key2", "val2"),
HashMaps.entry("key3", "val3"),
HashMaps.entry("key4", "val4"),
HashMaps.entry("key5", "val5"),
HashMaps.entry("key6", "val6"),
HashMaps.entry("key7", "val7"),
HashMaps.entry("key8", "val8"),
HashMaps.entry("key9", "val9"),
HashMaps.entry("key10", "val10"),
HashMaps.entry("key11", "val11")
);
assertNotNull(map);
assertTrue(map instanceof HashMap);
assertEquals(11, map.size());
}
}