test: add MyHashMap tests

This commit is contained in:
user
2026-09-12 20:23:55 +04:00
parent 4068c0ff50
commit b46ae2b8f2
@@ -0,0 +1,121 @@
package org.example;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class MyHashMapTest {
@Test
void shouldPutAndGet() {
MyHashMap<String, Integer> map = new MyHashMap<>(4);
map.put("A", 10);
assertEquals(10, map.get("A"));
}
@Test
void shouldUpdateValue() {
MyHashMap<String, Integer> map = new MyHashMap<>(4);
map.put("A", 10);
map.put("A", 20);
assertEquals(20, map.get("A"));
}
@Test
void shouldReturnOldValueWhenUpdating() {
MyHashMap<String, Integer> map = new MyHashMap<>(4);
assertNull(map.put("A", 10));
assertEquals(10, map.put("A", 20));
}
@Test
void shouldReturnNullForMissingKey() {
MyHashMap<String, Integer> map = new MyHashMap<>(4);
assertNull(map.get("A"));
}
@Test
void shouldRemoveValue() {
MyHashMap<String, Integer> map = new MyHashMap<>(4);
map.put("A", 10);
assertEquals(10, map.remove("A"));
assertNull(map.get("A"));
}
@Test
void shouldReturnNullWhenRemovingMissingKey() {
MyHashMap<String, Integer> map = new MyHashMap<>(4);
assertNull(map.remove("A"));
}
@Test
void shouldHandleCollision() {
MyHashMap<Integer, String> map = new MyHashMap<>(4);
map.put(1, "A");
map.put(5, "B");
assertEquals("A", map.get(1));
assertEquals("B", map.get(5));
}
@Test
void shouldHandleRemoveWithCollision() {
MyHashMap<Integer, String> map = new MyHashMap<>(4);
map.put(1, "A");
map.put(5, "B");
map.put(9, "C");
assertEquals("A", map.remove(1));
assertEquals("B", map.get(5));
assertEquals("C", map.get(9));
}
@Test
void shouldResize() {
MyHashMap<Integer, String> map = new MyHashMap<>(2);
map.put(1, "A");
map.put(2, "B");
map.put(3, "C");
assertEquals("A", map.get(1));
assertEquals("B", map.get(2));
assertEquals("C", map.get(3));
}
@Test
void shouldReuseDeletedSlot() {
MyHashMap<Integer, String> map = new MyHashMap<>(4);
map.put(1, "A");
map.put(5, "B");
map.remove(1);
map.put(9, "C");
assertEquals("C", map.get(9));
assertEquals("B", map.get(5));
}
@Test
void shouldHandleNullKey() {
MyHashMap<String, Integer> map = new MyHashMap<>(4);
map.put(null, 100);
assertEquals(100, map.get(null));
assertEquals(100, map.remove(null));
assertNull(map.get(null));
}
}