@@ -17,7 +17,7 @@ public void testInsertAndSearch() {
17
17
assertEquals ("Value15" , hashMap .search (15 ));
18
18
assertEquals ("Value25" , hashMap .search (25 ));
19
19
assertEquals ("Value35" , hashMap .search (35 ));
20
- assertNull (hashMap .search (45 ));
20
+ assertNull (hashMap .search (45 )); // Test for non-existent key
21
21
}
22
22
23
23
@ Test
@@ -29,7 +29,7 @@ public void testDelete() {
29
29
30
30
assertEquals ("Value25" , hashMap .search (25 ));
31
31
hashMap .delete (25 );
32
- assertNull (hashMap .search (25 ));
32
+ assertNull (hashMap .search (25 )); // Confirm deletion
33
33
}
34
34
35
35
@ Test
@@ -38,21 +38,22 @@ public void testDisplay() {
38
38
hashMap .insert (15 , "Value15" );
39
39
hashMap .insert (25 , "Value25" );
40
40
hashMap .insert (35 , "Value35" );
41
- hashMap .display ();
41
+ // Optionally verify display functionality if it returns a string
42
+ hashMap .display (); // Manual check during test execution
42
43
}
43
44
44
45
@ Test
45
46
public void testInsertNullKey () {
46
47
HashMap <Integer , String > hashMap = new HashMap <>(10 );
47
48
hashMap .insert (null , "NullValue" );
48
- assertEquals ("NullValue" , hashMap .search (null ));
49
+ assertEquals ("NullValue" , hashMap .search (null )); // Verify null key handling
49
50
}
50
51
51
52
@ Test
52
53
public void testInsertNullValue () {
53
54
HashMap <Integer , String > hashMap = new HashMap <>(10 );
54
55
hashMap .insert (15 , null );
55
- assertNull (hashMap .search (15 ));
56
+ assertNull (hashMap .search (15 )); // Verify null value handling
56
57
}
57
58
58
59
@ Test
@@ -61,12 +62,12 @@ public void testUpdateExistingKey() {
61
62
hashMap .insert (15 , "Value15" );
62
63
hashMap .insert (15 , "UpdatedValue15" );
63
64
64
- assertEquals ("UpdatedValue15" , hashMap .search (15 ));
65
+ assertEquals ("UpdatedValue15" , hashMap .search (15 )); // Verify update
65
66
}
66
67
67
68
@ Test
68
69
public void testHandleCollisions () {
69
- HashMap <Integer , String > hashMap = new HashMap <>(3 );
70
+ HashMap <Integer , String > hashMap = new HashMap <>(3 ); // Create a small bucket size to force collisions
70
71
// These keys should collide if the hash function is modulo 3
71
72
hashMap .insert (1 , "Value1" );
72
73
hashMap .insert (4 , "Value4" );
@@ -80,17 +81,17 @@ public void testHandleCollisions() {
80
81
@ Test
81
82
public void testSearchInEmptyHashMap () {
82
83
HashMap <Integer , String > hashMap = new HashMap <>(10 );
83
- assertNull (hashMap .search (10 ));
84
+ assertNull (hashMap .search (10 )); // Confirm search returns null in empty map
84
85
}
85
86
86
87
@ Test
87
88
public void testDeleteNonExistentKey () {
88
89
HashMap <Integer , String > hashMap = new HashMap <>(10 );
89
90
hashMap .insert (15 , "Value15" );
90
- hashMap .delete (25 );
91
+ hashMap .delete (25 ); // Delete non-existent key
91
92
92
- assertEquals ("Value15" , hashMap .search (15 ));
93
- assertNull (hashMap .search (25 ));
93
+ assertEquals ("Value15" , hashMap .search (15 )); // Ensure existing key remains
94
+ assertNull (hashMap .search (25 )); // Confirm non-existent key remains null
94
95
}
95
96
96
97
@ Test
@@ -101,7 +102,7 @@ public void testInsertLargeNumberOfElements() {
101
102
}
102
103
103
104
for (int i = 0 ; i < 100 ; i ++) {
104
- assertEquals ("Value" + i , hashMap .search (i ));
105
+ assertEquals ("Value" + i , hashMap .search (i )); // Verify all inserted values
105
106
}
106
107
}
107
108
@@ -113,7 +114,7 @@ public void testDeleteHeadOfBucket() {
113
114
hashMap .insert (7 , "Value7" );
114
115
115
116
hashMap .delete (1 );
116
- assertNull (hashMap .search (1 ));
117
+ assertNull (hashMap .search (1 )); // Verify head deletion
117
118
assertEquals ("Value4" , hashMap .search (4 ));
118
119
assertEquals ("Value7" , hashMap .search (7 ));
119
120
}
@@ -126,7 +127,7 @@ public void testDeleteTailOfBucket() {
126
127
hashMap .insert (7 , "Value7" );
127
128
128
129
hashMap .delete (7 );
129
- assertNull (hashMap .search (7 ));
130
+ assertNull (hashMap .search (7 )); // Verify tail deletion
130
131
assertEquals ("Value1" , hashMap .search (1 ));
131
132
assertEquals ("Value4" , hashMap .search (4 ));
132
133
}
@@ -139,8 +140,45 @@ public void testDeleteMiddleElementOfBucket() {
139
140
hashMap .insert (7 , "Value7" );
140
141
141
142
hashMap .delete (4 );
142
- assertNull (hashMap .search (4 ));
143
+ assertNull (hashMap .search (4 )); // Verify middle element deletion
143
144
assertEquals ("Value1" , hashMap .search (1 ));
144
145
assertEquals ("Value7" , hashMap .search (7 ));
145
146
}
147
+
148
+ @ Test
149
+ public void testResizeHashMap () {
150
+ HashMap <Integer , String > hashMap = new HashMap <>(2 ); // Small initial size to force rehashing
151
+ for (int i = 0 ; i < 10 ; i ++) {
152
+ hashMap .insert (i , "Value" + i );
153
+ }
154
+
155
+ // Verify all values after resizing
156
+ for (int i = 0 ; i < 10 ; i ++) {
157
+ assertEquals ("Value" + i , hashMap .search (i ));
158
+ }
159
+ }
160
+
161
+ @ Test
162
+ public void testCollisionResolution () {
163
+ HashMap <String , String > hashMap = new HashMap <>(3 );
164
+ hashMap .insert ("abc" , "Value1" ); // Hash index 0
165
+ hashMap .insert ("cab" , "Value2" ); // Hash index 0 (collision)
166
+ hashMap .insert ("bac" , "Value3" ); // Hash index 0 (collision)
167
+
168
+ assertEquals ("Value1" , hashMap .search ("abc" ));
169
+ assertEquals ("Value2" , hashMap .search ("cab" ));
170
+ assertEquals ("Value3" , hashMap .search ("bac" ));
171
+ }
172
+
173
+ @ Test
174
+ public void testClearHashMap () {
175
+ HashMap <Integer , String > hashMap = new HashMap <>(10 );
176
+ hashMap .insert (1 , "Value1" );
177
+ hashMap .insert (2 , "Value2" );
178
+
179
+ hashMap .clear (); // Assuming clear method resets the hash map
180
+ assertNull (hashMap .search (1 ));
181
+ assertNull (hashMap .search (2 ));
182
+ assertEquals (0 , hashMap .size ()); // Verify size is reset
183
+ }
146
184
}
0 commit comments