Skip to content

Commit 2d39e23

Browse files
committed
Correct Math function for DefaultCapacity on HashTable
Add test for minimum HashTable size
1 parent ff81a5d commit 2d39e23

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

DataStructures.Tests/Hashing/HashTableTests.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,23 @@ public void Remove_TriggersResizeDown()
192192
Assert.That(hashTable.Capacity, Is.EqualTo(40));
193193
}
194194

195+
[Test]
196+
public void Remove_TriggersResizeDown_MinimumOfDefaultCapacity()
197+
{
198+
var hashTable = new HashTable<int, string>(4);
199+
for (var i = 1; i <= 50; i++)
200+
{
201+
hashTable.Add(i, $"Value{i}");
202+
}
203+
204+
for (var i = 1; i <= 48; i++)
205+
{
206+
hashTable.Remove(i);
207+
}
208+
209+
Assert.That(hashTable.Capacity, Is.EqualTo(16));
210+
}
211+
195212
[Test]
196213
public void ContainsValue_ReturnsFalse_WhenValueDoesNotExist()
197214
{

DataStructures/Hashing/HashTable.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ public void Clear()
286286
public void Resize()
287287
{
288288
var newCapacity = size <= threshold / 2
289-
? Math.Min(capacity / 2, DefaultCapacity)
289+
? Math.Max(capacity / 2, DefaultCapacity)
290290
: capacity * 2;
291291
var newEntries = new Entry<TKey, TValue>[newCapacity];
292292

0 commit comments

Comments
 (0)