Skip to content

Commit b9dc1e3

Browse files
committed
Added tests for empty free construction
1 parent 5f264a4 commit b9dc1e3

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

pydatastructs/trees/tests/test_binary_trees.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,47 @@ def test_cpp_RedBlackTree():
821821

822822

823823
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+
824865
FT = FusionTree
825866
f_tree = FT(8, 8, backend=backend)
826867

0 commit comments

Comments
 (0)