def test_add_child(self): root = SimpleTreeNode(0, None) tree = SimpleTree(root) node = SimpleTreeNode(1, None) tree.AddChild(root, node) self.assertEqual(root.Children, [node]) self.assertEqual(node.Parent, root)
def test_delete_node(self): root = SimpleTreeNode(0, None) tree = SimpleTree(root) node = SimpleTreeNode(1, None) node2 = SimpleTreeNode(2, None) tree.AddChild(root, node) tree.AddChild(root, node2) self.assertEqual(tree.Count(), 3) tree.DeleteNode(node) self.assertEqual(tree.Count(), 2) self.assertNotIn(node, tree.GetAllNodes())
def test(self): node = SimpleTreeNode("1", None) self.assertEqual("root", self.tree.Root.NodeValue) self.tree.AddChild(self.root_node, node) self.assertEqual(node, self.tree.Root.Children[0]) self.assertEqual(self.root_node, node.Parent)
def test(self): node = SimpleTreeNode("root", None) self.assertIsNone(self.tree.Root) self.tree.AddChild(None, node) self.assertEqual(node, self.tree.Root) self.assertEqual("root", self.tree.Root.NodeValue)
def test_find_nodes_by_value(self): root = SimpleTreeNode(0, None) tree = SimpleTree(root) node = SimpleTreeNode(1, None) node2 = SimpleTreeNode(2, None) node3 = SimpleTreeNode(3, None) node4 = SimpleTreeNode(1, None) node5 = SimpleTreeNode(5, None) node6 = SimpleTreeNode(1, None) expected_nodes = [node, node4, node6] tree.AddChild(root, node) tree.AddChild(root, node2) tree.AddChild(root, node3) tree.AddChild(node3, node4) tree.AddChild(node3, node5) tree.AddChild(node3, node6) nodes = tree.FindNodesByValue(1) self.assertEqual(len(nodes), len(expected_nodes)) for item in expected_nodes: self.assertIn(item, nodes)
def test_move_node_with_subtree(self): root = SimpleTreeNode(0, None) tree = SimpleTree(root) node = SimpleTreeNode(1, None) node2 = SimpleTreeNode(2, None) node3 = SimpleTreeNode(3, None) node4 = SimpleTreeNode(1, None) node5 = SimpleTreeNode(5, None) node6 = SimpleTreeNode(1, None) tree.AddChild(root, node) tree.AddChild(root, node2) tree.AddChild(root, node3) tree.AddChild(node3, node4) tree.AddChild(node4, node5) tree.AddChild(node4, node6) self.assertEqual(tree.Count(), 7) self.assertEqual(tree.LeafCount(), 4) self.assertEqual(node4.Children, [node5, node6]) self.assertEqual(node4.Parent, node3) tree.MoveNode(node4, node) self.assertEqual(tree.Count(), 7) self.assertEqual(tree.LeafCount(), 4) self.assertEqual(node4.Children, [node5, node6]) self.assertEqual(node4.Parent, node)
def test_delete_node_subtree(self): root = SimpleTreeNode(0, None) tree = SimpleTree(root) node = SimpleTreeNode(1, None) node2 = SimpleTreeNode(2, None) node3 = SimpleTreeNode(3, None) node4 = SimpleTreeNode(1, None) node5 = SimpleTreeNode(5, None) node6 = SimpleTreeNode(1, None) tree.AddChild(root, node) tree.AddChild(root, node2) tree.AddChild(root, node3) tree.AddChild(node3, node4) tree.AddChild(node3, node5) tree.AddChild(node3, node6) self.assertEqual(tree.Count(), 7) tree.DeleteNode(node3) self.assertEqual(tree.Count(), 3) for item in [node3, node4, node5, node6]: self.assertNotIn(item, tree.GetAllNodes())
def test_get_all_nodes(self): root = SimpleTreeNode(0, None) tree = SimpleTree(root) node = SimpleTreeNode(1, None) node2 = SimpleTreeNode(2, None) expected_nodes = [root, node, node2] tree.AddChild(root, node) tree.AddChild(root, node2) nodes = tree.GetAllNodes() self.assertEqual(len(nodes), len(expected_nodes)) for item in expected_nodes: self.assertIn(item, nodes)
def test_count_leaf(self): root = SimpleTreeNode(0, None) tree = SimpleTree(root) node = SimpleTreeNode(1, None) node2 = SimpleTreeNode(2, None) node3 = SimpleTreeNode(3, None) node4 = SimpleTreeNode(1, None) node5 = SimpleTreeNode(5, None) node6 = SimpleTreeNode(1, None) tree.AddChild(root, node) tree.AddChild(root, node2) tree.AddChild(root, node3) tree.AddChild(node3, node4) tree.AddChild(node3, node5) tree.AddChild(node3, node6) self.assertEqual(tree.LeafCount(), 5)
def setUp(self) -> None: self.node_root = SimpleTreeNode("root", None) self.node_1 = SimpleTreeNode("1", None) self.node_2 = SimpleTreeNode("2", None) self.node_3 = SimpleTreeNode("3", None) self.node_4 = SimpleTreeNode("4", None) self.node_5 = SimpleTreeNode("5", None) self.node_6 = SimpleTreeNode("6", None) self.tree = SimpleTree(self.node_root) self.tree.AddChild(self.node_1, self.node_3) self.tree.AddChild(self.node_1, self.node_4) self.tree.AddChild(self.node_2, self.node_5) self.tree.AddChild(self.node_2, self.node_6) self.tree.AddChild(self.node_root, self.node_1) self.tree.AddChild(self.node_root, self.node_2)
def setUp(self) -> None: self.root_node = SimpleTreeNode("root", None) self.tree = SimpleTree(self.root_node)
def test(self): self.node_7 = SimpleTreeNode(7, None) self.tree.AddChild(self.node_6, self.node_7) self.assertListEqual( [self.node_root, self.node_2, self.node_2, self.node_6], self.tree.EvenTrees())