From b5d8de4faf9461c69d1e9381d7ccea157fc9b57c Mon Sep 17 00:00:00 2001 From: julien lengrand-lambert Date: Tue, 26 Nov 2013 18:59:33 +0100 Subject: [PATCH] Finishes implementing the bare simple HM ersion using items. Now going to modify the version handling collisions --- 02_hash_maps/hm.py | 7 +++++-- 02_hash_maps/hm_test.py | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/02_hash_maps/hm.py b/02_hash_maps/hm.py index c91d489..619f04b 100644 --- a/02_hash_maps/hm.py +++ b/02_hash_maps/hm.py @@ -145,9 +145,12 @@ class HashMapWithItem(): Adds the provided value to the hashmap. Raises an Exception if a collision is detected """ + # item to be saved in the HM + item = _HashMapItem(key, value) + my_key = self._hash(key) if self.hmap[my_key] == None: - self.hmap[my_key] = value + self.hmap[my_key] = item self._size += 1 else: raise Exception("Collision detected at index %d", key) @@ -158,7 +161,7 @@ class HashMapWithItem(): the string we are looking for """ my_key = self._hash(key) - return self.hmap[my_key] + return self.hmap[my_key].v # returns the value def size(self): return self._size diff --git a/02_hash_maps/hm_test.py b/02_hash_maps/hm_test.py index 2924703..d282ce5 100644 --- a/02_hash_maps/hm_test.py +++ b/02_hash_maps/hm_test.py @@ -80,7 +80,6 @@ class test_hash_map_table_collision(unittest.TestCase): self.assertEqual(hm.get("Five"), None) self.assertEqual(hm.get(key), [value, value3]) - class test_hash_map_with_item(unittest.TestCase): def test_hash_size(self):