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
+
3
4
4
5
def test_MAryTree ():
5
6
m = MAryTree (1 , 1 )
6
7
assert str (m ) == '[(1, 1)]'
7
8
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