@@ -46,6 +46,8 @@ def test_cpp_BST2():
46
46
BST = BinarySearchTree
47
47
b = BST (8 , 8 , backend = Backend .CPP )
48
48
# b = BST(8, 8)
49
+
50
+ ##### insert() and delete() tests #####
49
51
b .delete (8 )
50
52
b .insert (8 , 8 )
51
53
b .insert (3 , 3 )
@@ -62,11 +64,13 @@ def test_cpp_BST2():
62
64
"(5, 6, 6, 6), (None, 4, 4, None), (None, 7, 7, None), (8, 14, 14, None), "
63
65
"(None, 13, 13, None)]" )
64
66
67
+ ##### _simple_path() test #####
65
68
path = b ._simple_path (1 ,0 )
66
69
assert path [0 ] == 0
67
70
assert path [1 ] == 1
68
71
assert path [2 ] == 3
69
72
73
+ ##### search() and delete() tests #####
70
74
assert b .search (10 ) == 2
71
75
assert b .search (- 1 ) is None
72
76
assert b .delete (13 ) is True
@@ -116,6 +120,7 @@ def test_cpp_BST2():
116
120
bl1 .insert (node , node )
117
121
assert str (bl1 ) == "[(1, 50, 50, 2), (8, 30, 30, 9), (3, 90, 90, 4), (5, 70, 70, 6), (None, 100, 100, None), (7, 60, 60, None), (None, 80, 80, None), (None, 55, 55, None), (10, 20, 20, None), (None, 40, 40, None), (11, 15, 15, 12), (None, 10, 10, None), (None, 16, 16, 13), (None, 17, 17, 14), (None, 18, 18, None)]"
118
122
123
+ ##### lowest common ancestor _lca2_() tests #####
119
124
assert bl1 .lowest_common_ancestor (80 , 55 , 2 ) == 70
120
125
assert bl1 .lowest_common_ancestor (60 , 70 , 2 ) == 70
121
126
assert bl1 .lowest_common_ancestor (18 , 18 , 2 ) == 18
@@ -137,6 +142,7 @@ def test_cpp_BST2():
137
142
bl2 .insert (node , node )
138
143
assert str (bl2 ) == "[(1, 50, 50, 2), (8, 30, 30, 9), (3, 90, 90, 4), (5, 70, 70, 6), (None, 100, 100, None), (7, 60, 60, None), (None, 80, 80, None), (None, 55, 55, None), (10, 20, 20, None), (None, 40, 40, None), (11, 15, 15, 12), (None, 10, 10, None), (None, 16, 16, 13), (None, 17, 17, 14), (None, 18, 18, None)]"
139
144
145
+ ##### lowest common ancestor _lca1_() tests #####
140
146
assert bl2 .lowest_common_ancestor (80 , 55 , 1 ) == 70
141
147
assert bl2 .lowest_common_ancestor (60 , 70 , 1 ) == 70
142
148
assert bl2 .lowest_common_ancestor (18 , 18 , 1 ) == 18
@@ -151,13 +157,15 @@ def test_cpp_BST2():
151
157
assert raises (ValueError , lambda : bl2 .lowest_common_ancestor (200 , 60 , 1 ))
152
158
assert raises (ValueError , lambda : bl2 .lowest_common_ancestor (- 3 , 4 , 1 ))
153
159
160
+ ##### rank() tests #####
154
161
assert bl2 .rank (18 ) == 5
155
162
assert bl2 .rank (10 ) == 1
156
163
rank_list = [2 , 2 , 4 , 4 , 5 , 4 , 5 , 3 , 2 , 3 , 2 , 1 , 3 , 4 , 5 ]
157
164
for i ,node in enumerate (nodes ):
158
165
assert bl2 .rank (node ) == rank_list [i ]
159
166
assert bl2 .rank (200 ) is None
160
167
168
+ ##### select() tests #####
161
169
select_list = [10 , 50 , 55 , 90 , 100 ]
162
170
for i in range (5 ):
163
171
assert bl2 .select (i + 1 ).key == select_list [i ]
@@ -167,17 +175,20 @@ def test_cpp_BST2():
167
175
b3 .insert (10 , 10 )
168
176
b3 .insert (18 , 18 )
169
177
b3 .insert (7 , 7 )
178
+
179
+ ##### upper_bound() tests #####
170
180
assert b3 .upper_bound (9 ) == 10
171
181
assert b3 .upper_bound (7 ) == 10
172
182
assert b3 .upper_bound (- 1 ) == 7
173
183
assert b3 .upper_bound (20 ) is None
174
184
185
+ ##### lower_bound() tests #####
175
186
assert b3 .lower_bound (9 ) == 10
176
187
assert b3 .lower_bound (7 ) == 7
177
188
assert b3 .lower_bound (- 1 ) == 7
178
189
assert b3 .lower_bound (20 ) is None
179
190
180
- test_cpp_BST2 ()
191
+ # test_cpp_BST2()
181
192
182
193
def test_cpp_BST_speed ():
183
194
BST = BinarySearchTree
0 commit comments