def test_filter(self): lst = MyHashMap(vItem=[1, 2, 3, 4, 5, 6, 7, 8, 9]) lst.filter(lambda x: x % 2 == 0) self.assertEqual(lst.to_list().sort(), [2, 4, 6, 8].sort()) lst = MyHashMap(vItem=[1, 2, 3, 4, 5, 6, 7, 8, 9]) lst.filter(lambda x: x % 2 != 0) self.assertEqual(lst.to_list().sort(), [1, 3, 5, 7, 9].sort())
def test_remove(self): lst = MyHashMap(vItem=[2, 4, 7]) lst.remove(2) self.assertEqual(lst.to_list().sort(), [4, 7].sort()) lst = MyHashMap(vItem=[55, 16, 7]) lst.remove(2) self.assertEqual(lst.to_list().sort(), [55, 16, 7].sort())
def test_hashCollision(self): lst = MyHashMap( vItem=[100, 200, 300] ) #100,200,300 have the same hash value, so the order does not change after the conflict is resolved self.assertEqual(lst.to_list(), [100, 200, 300]) lst = MyHashMap( vItem=[32, 16, 48] ) #have the same hash value, so the order does not change after the conflict is resolved self.assertEqual(lst.to_list(), [32, 16, 48])
def test_map(self): lst = MyHashMap(vItem=[]) lst.map(str) self.assertEqual(lst.to_list(), []) lst = MyHashMap(vItem=[1, 2, 3, 4, 5]) lst.map(str) self.assertEqual(lst.to_list().sort(), ['1', '2', '3', '4', '5'].sort()) lst = MyHashMap(vItem=[1, 2, 3, 4, 5]) lst.map(lambda x: x**2) self.assertEqual(lst.to_list().sort(), [1, 4, 9, 16, 25].sort())
def test_from_list_to_list_equality(self, a): lst = MyHashMap() lst.from_list(a) b = lst.to_list() self.assertEqual(b.sort(), list(set(a)).sort())
def test_insert(self): lst = MyHashMap(vItem=[]) lst.insert(2) self.assertEqual(lst.to_list().sort(), [2].sort()) lst.insert(55) self.assertEqual(lst.to_list().sort(), [2, 55].sort())
def test_from_list(self): test_data = [[], ['a'], ['a', 'b']] for e in test_data: lst = MyHashMap(vItem=[]) lst.from_list(e) self.assertEqual(lst.to_list().sort(), e.sort())