Example #1
0
    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)
Example #2
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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())
Example #8
0
    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)
Example #9
0
    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())