11from pydatastructs .trees .binary_trees import (
22 BinarySearchTree , BinaryTreeTraversal , AVLTree ,
3- ArrayForTrees , BinaryIndexedTree , SplayTree )
3+ ArrayForTrees , BinaryIndexedTree , SelfBalancingBinaryTree , SplayTree )
44from pydatastructs .utils .raises_util import raises
55from pydatastructs .utils .misc_util import TreeNode
66from copy import deepcopy
@@ -320,6 +320,7 @@ def test_BinaryIndexedTree():
320320 assert t .get_sum (0 , 4 ) == 114
321321 assert t .get_sum (1 , 9 ) == 54
322322
323+ < << << << HEAD
323324def test_SplayTree ():
324325 t = SplayTree (100 , 100 )
325326 t .insert (50 , 50 )
@@ -345,3 +346,33 @@ def test_SplayTree():
345346
346347 assert str (s ) == ("[(1, 2000, 2000, None), (None, 1000, 1000, None)]" )
347348 assert str (t ) == ("[(None, 100, 100, None), '', (6, 200, 200, None), (4, 50, 50, None), (5, 30, 30, None), (None, 20, 20, None), (3, 55, 55, 0), '', '']" )
349+ == == == =
350+ def test_issue_234 ():
351+ """
352+ https://github.com/codezonediitj/pydatastructs/issues/234
353+ """
354+ tree = SelfBalancingBinaryTree ()
355+ tree .insert (5 , 5 )
356+ tree .insert (5.5 , 5.5 )
357+ tree .insert (4.5 , 4.5 )
358+ tree .insert (4.6 , 4.6 )
359+ tree .insert (4.4 , 4.4 )
360+ tree .insert (4.55 , 4.55 )
361+ tree .insert (4.65 , 4.65 )
362+ original_tree = str (tree )
363+ tree ._right_rotate (3 , 5 )
364+ assert tree .tree [3 ].parent == 5
365+ assert tree .tree [2 ].right != 3
366+ assert tree .tree [tree .tree [5 ].parent ].right == 5
367+ assert str (tree ) == ("[(2, 5, 5, 1), (None, 5.5, 5.5, None), "
368+ "(4, 4.5, 4.5, 5), (None, 4.6, 4.6, 6), "
369+ "(None, 4.4, 4.4, None), (None, 4.55, 4.55, 3), "
370+ "(None, 4.65, 4.65, None)]" )
371+ assert tree .tree [tree .tree [3 ].parent ].right == 3
372+ tree ._left_rotate (5 , 3 )
373+ assert str (tree ) == original_tree
374+ tree .insert (4.54 , 4.54 )
375+ tree .insert (4.56 , 4.56 )
376+ tree ._left_rotate (5 , 8 )
377+ assert tree .tree [tree .tree [8 ].parent ].left == 8
378+ > >> >> >> Fixed SelfBalancingBinaryTree (#238)
0 commit comments