Skip to content

Commit 8fba7d8

Browse files
committed
HashTable:
Added len() support and testing
1 parent 36a7561 commit 8fba7d8

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

map/hashtable.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ def __delitem__(self, key):
9595
def __setitem__(self, key, value):
9696
self.put(key, value)
9797

98+
def __len__(self):
99+
return self._len
100+
98101

99102
class TestHashTable(TestCase):
100103
def test_one_entry(self):
@@ -146,3 +149,19 @@ def test_assigning_to_full_table_throws_error(self):
146149
m.put(3, 3)
147150
with self.assertRaises(ValueError):
148151
m.put(4, 4)
152+
153+
def test_len_trivial(self):
154+
m = HashTable(10)
155+
self.assertEqual(0, len(m))
156+
for i in range(10):
157+
m.put(i, i)
158+
self.assertEqual(i + 1, len(m))
159+
160+
def test_len_after_deletions(self):
161+
m = HashTable(10)
162+
m.put(1, 1)
163+
self.assertEqual(1, len(m))
164+
m.del_(1)
165+
self.assertEqual(0, len(m))
166+
m.put(11, 42)
167+
self.assertEqual(1, len(m))

0 commit comments

Comments
 (0)