@@ -821,6 +821,47 @@ def test_cpp_RedBlackTree():
821821
822822
823823def _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+
824865 FT = FusionTree
825866 f_tree = FT (8 , 8 , backend = backend )
826867
0 commit comments