class AVLTester2(unittest.TestCase): """Second set of tests for avl""" def setUp(self): self.avl = AVL() self.avl.insert(277, 19) # some random values choosen by me self.avl.insert(31, 14) # order of inserted elements self.avl.insert(91, 99) # forces rotation of nodes self.avl.insert(99, 22) self.avl.insert(111, 78) self.avl.insert(121, 91) def test_modifications(self): """Checks whether modification is ok""" self.avl.modify_by_key(111, 19) self.avl.modify_by_key(200, 21) self.assertEqual(self.avl.get_value_by_key(111), 19) def test_removal(self): """Checks whether removal works fine""" self.avl.remove_by_key(31) self.avl.remove_by_key(99) self.assertListEqual([v for k, v in self.avl], [99, 78, 91, 19]) self.assertIsNone(self.avl.get_value_by_key(31)) self.assertEqual(self.avl.get_value_by_closest_match(31), 99) def test_some_things(self): """Test some random things""" self.assertListEqual([78, 91, 19], [value for key, value in self.avl.get_iterator_by_key(111)]) self.assertListEqual([78, 91, 19], [value for key, value in self.avl.get_iterator_by_position(4)]) self.assertEqual(self.avl.get_value_by_closest_match(91), 99) self.assertEqual(self.avl.get_value_by_closest_match(71), 99) self.assertEqual(self.avl.get_value_by_closest_match(95), 22) self.assertEqual(self.avl.get_closest_element_position(21), 1) self.assertEqual(self.avl.get_closest_element_position(98), 3) self.avl.clear() self.assertIsNone(self.avl.get_value_by_closest_match(111))