From ee382ac0a87921bfcd7ab651bd47cca2497ee7e3 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Sun, 24 Nov 2013 17:01:12 +0100 Subject: [PATCH] find_next_idx behaviour checked. Seems to work as expected --- 02_hash_maps/hm_test.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/02_hash_maps/hm_test.py b/02_hash_maps/hm_test.py index 3e8b909..985a78e 100644 --- a/02_hash_maps/hm_test.py +++ b/02_hash_maps/hm_test.py @@ -12,15 +12,37 @@ import unittest class test_hash_map_neighbour_collision(unittest.TestCase): - def test_add(self): + def test__find_free_idx(self): hm = HMNeighbourCollision() - hm.add("One", "Ibiza") + key = "One" + value = "Ibiza" + + my_key = hm._hash(key) + idx = hm._find_free_idx(my_key) + self.assertEqual(my_key, idx) + + hm.add(key, value) self.assertEqual(hm.size(), 1) - hm.add("One", "Ibiza2") + # We move one up + idx = hm._find_free_idx(my_key) + self.assertEqual(my_key - 1, idx) + + hm.add(key, "Ibiza2") self.assertEqual(hm.size(), 2) + # We move one down + idx = hm._find_free_idx(my_key) + self.assertEqual(my_key + 1, idx) + + hm.add(key, "Ibiza3") + self.assertEqual(hm.size(), 3) + + # We move two up + idx = hm._find_free_idx(my_key) + self.assertEqual(my_key - 2, idx) + class test_hash_map_table_collision(unittest.TestCase): def test_add(self):