def setUp(self): self.tree = Tree()
class NArySearchTree(unittest.TestCase): def setUp(self): self.tree = Tree() def test_tree_initialization(self): self.assertIsInstance(self.tree.root, Node) def test_push_pattern_a(self): self.tree.push("a") self.assertIn("a", self.tree.root.children) def test_push_pattern_ab(self): self.tree.push("ab") self.assertIn("a", self.tree.root.children) self.assertIn("b", self.tree.root.children["a"].children) def test_push_pattern_a_then_pattern_ab_then_pattern_ac(self): self.tree.push("a") self.tree.push("ab") self.tree.push("ac") self.assertIn("a", self.tree.root.children) self.assertIn("b", self.tree.root.children["a"].children) self.assertIn("c", self.tree.root.children["a"].children) def test_search_in_empty_tree_returns_empty_list(self): self.assertEqual(self.tree.search("pattern"), []) def test_push_vinicius_and_search_for_vin_is_not_empty(self): pushed_value = {"name": "Vinicius", "age": 25} self.tree.push("vinicius", pushed_value) returned_value = self.tree.search("vin") self.assertTrue(returned_value) self.assertEqual(returned_value[0]["name"], pushed_value["name"]) def test_push_vinicius_and_search_for_ini_is_empty(self): pushed_value = {"name": "Vinicius", "age": 25} self.tree.push("vinicius", pushed_value) returned_value = self.tree.search("ini") self.assertEqual(returned_value, []) def test_push_vinicius_and_vinicolas_and_search_vini_returns_both_items(self): pushed_vinicius = {"name": "Vinicius", "age": 25} pushed_vinicolas = {"name": "Vinicolas", "age": 23} self.tree.push("vinicius", pushed_vinicius) self.tree.push("vinicolas", pushed_vinicolas) returned_value = self.tree.search("vin") self.assertEqual(returned_value[0]["name"], pushed_vinicius["name"]) self.assertEqual(returned_value[1]["name"], pushed_vinicolas["name"])