Skip to content

Commit 77b7a36

Browse files
committed
Added parent pointer tree tests
1 parent baaa06d commit 77b7a36

File tree

1 file changed

+64
-4
lines changed

1 file changed

+64
-4
lines changed
Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,69 @@
1-
from pydatastructs import MAryTree
2-
from pydatastructs.trees.m_ary_trees import ParentPointerTree
1+
from pydatastructs.utils.misc_util import Backend
2+
from pydatastructs.trees.m_ary_trees import MAryTree, ParentPointerTree
3+
34

45
def test_MAryTree():
56
m = MAryTree(1, 1)
67
assert str(m) == '[(1, 1)]'
78

8-
def test_ParentPointerTree():
9-
pass
9+
10+
def _test_ParentPointerTree(backend):
11+
PPT = ParentPointerTree
12+
13+
tree = PPT(1, "root", backend=backend)
14+
assert tree.root_idx == 0
15+
assert tree.tree[0].key == 1
16+
assert tree.tree[0].data == "root"
17+
assert tree.tree[0].parent is None
18+
19+
tree.insert(1, 2, "child_1")
20+
tree.insert(1, 3, "child_2")
21+
tree.insert(1, 4, "child_3")
22+
assert tree.size == 4
23+
assert tree.tree[1].key == 2
24+
assert tree.tree[1].data == "child_1"
25+
assert tree.tree[1].parent == tree.tree[0]
26+
assert tree.tree[2].key == 3
27+
assert tree.tree[2].data == "child_2"
28+
assert tree.tree[2].parent == tree.tree[0]
29+
assert tree.tree[3].key == 4
30+
assert tree.tree[3].data == "child_3"
31+
assert tree.tree[3].parent == tree.tree[0]
32+
33+
assert tree.search(2).data == "child_1"
34+
assert tree.search(3).data == "child_2"
35+
assert tree.search(4).data == "child_3"
36+
assert tree.search(5) is None
37+
assert tree.search(2, parent=True) == tree.tree[0]
38+
39+
tree.insert(2, 5, "child_4")
40+
tree.insert(2, 6, "child_5")
41+
assert tree.least_common_ancestor(5, 6) == tree.tree[1]
42+
assert tree.least_common_ancestor(5, 3) == tree.tree[0]
43+
assert tree.least_common_ancestor(2, 4) == tree.tree[0]
44+
assert tree.least_common_ancestor(5, 7) is None
45+
46+
assert tree.delete(5) is True
47+
assert tree.search(5) is None
48+
assert tree.size == 5
49+
assert tree.delete(6) is True
50+
assert tree.search(6) is None
51+
assert tree.size == 4
52+
assert tree.delete(10) is None
53+
54+
expected = '''[(1, 'root', 'None'), (2, 'child_1', "(1, 'root')"), (3, 'child_2', "(1, 'root')"), (4, 'child_3', "(1, 'root')")]'''
55+
assert str(tree) == expected
56+
57+
empty_tree = PPT(backend=backend)
58+
assert empty_tree.size == 0
59+
assert empty_tree.search(1) is None
60+
assert empty_tree.delete(1) is None
61+
assert empty_tree.least_common_ancestor(1, 2) is None
62+
63+
empty_tree.insert(None, 7, "child_6")
64+
65+
expected = '''[(7, 'child_6', 'None')]'''
66+
assert str(empty_tree) == expected
67+
68+
def test_ParentPointerTree():
69+
_test_ParentPointerTree(Backend.PYTHON)

0 commit comments

Comments
 (0)