@@ -821,6 +821,47 @@ def test_cpp_RedBlackTree():
821
821
822
822
823
823
def _test_FusionTree (backend ):
824
+ FT = FusionTree
825
+ f_tree = FT (backend = backend )
826
+
827
+ f_tree .insert (8 , 8 )
828
+ f_tree .insert (3 , 3 )
829
+ f_tree .insert (10 , 10 )
830
+ f_tree .insert (1 , 1 )
831
+ f_tree .insert (6 , 6 )
832
+ f_tree .insert (4 , 4 )
833
+ f_tree .insert (7 , 7 )
834
+ f_tree .insert (14 , 14 )
835
+ f_tree .insert (13 , 13 )
836
+
837
+ assert f_tree .search (10 ) is not None
838
+ assert f_tree .search (- 1 ) is None
839
+
840
+ assert f_tree .delete (13 ) is True
841
+ assert f_tree .search (13 ) is None
842
+ assert f_tree .delete (10 ) is True
843
+ assert f_tree .search (10 ) is None
844
+ assert f_tree .delete (3 ) is True
845
+ assert f_tree .search (3 ) is None
846
+ assert f_tree .delete (13 ) is False # Already deleted
847
+
848
+ expected_str = '[(8, 8), (1, 1), (6, 6), (4, 4), (7, 7), (14, 14)]'
849
+ assert str (f_tree ) == expected_str
850
+
851
+ f_tree .insert (8 , 9 )
852
+ assert f_tree .search (8 ) is not None
853
+
854
+ large_key = 10 ** 9
855
+ f_tree .insert (large_key , large_key )
856
+ assert f_tree .search (large_key ) is not None
857
+
858
+ expected_str = '[(8, 8), (1, 1), (6, 6), (4, 4), (7, 7), (14, 14), (8, 9), (1000000000, 1000000000)]'
859
+ assert str (f_tree ) == expected_str
860
+ assert f_tree .delete (8 ) is True
861
+
862
+ expected_str = '[(1, 1), (6, 6), (4, 4), (7, 7), (14, 14), (8, 9), (1000000000, 1000000000)]'
863
+ assert str (f_tree ) == expected_str
864
+
824
865
FT = FusionTree
825
866
f_tree = FT (8 , 8 , backend = backend )
826
867
0 commit comments