|
1 | 1 | from pydatastructs.trees.binary_trees import (
|
2 | 2 | BinarySearchTree, BinaryTreeTraversal, AVLTree,
|
3 |
| - ArrayForTrees, BinaryIndexedTree) |
| 3 | + ArrayForTrees, BinaryIndexedTree, SelfBalancingBinaryTree) |
4 | 4 | from pydatastructs.utils.raises_util import raises
|
5 | 5 | from pydatastructs.utils.misc_util import TreeNode
|
6 | 6 | from copy import deepcopy
|
@@ -319,3 +319,32 @@ def test_BinaryIndexedTree():
|
319 | 319 | assert t.get_sum(0, 2) == 105
|
320 | 320 | assert t.get_sum(0, 4) == 114
|
321 | 321 | assert t.get_sum(1, 9) == 54
|
| 322 | + |
| 323 | +def test_issue_234(): |
| 324 | + """ |
| 325 | + https://github.com/codezonediitj/pydatastructs/issues/234 |
| 326 | + """ |
| 327 | + tree = SelfBalancingBinaryTree() |
| 328 | + tree.insert(5, 5) |
| 329 | + tree.insert(5.5, 5.5) |
| 330 | + tree.insert(4.5, 4.5) |
| 331 | + tree.insert(4.6, 4.6) |
| 332 | + tree.insert(4.4, 4.4) |
| 333 | + tree.insert(4.55, 4.55) |
| 334 | + tree.insert(4.65, 4.65) |
| 335 | + original_tree = str(tree) |
| 336 | + tree._right_rotate(3, 5) |
| 337 | + assert tree.tree[3].parent == 5 |
| 338 | + assert tree.tree[2].right != 3 |
| 339 | + assert tree.tree[tree.tree[5].parent].right == 5 |
| 340 | + assert str(tree) == ("[(2, 5, 5, 1), (None, 5.5, 5.5, None), " |
| 341 | + "(4, 4.5, 4.5, 5), (None, 4.6, 4.6, 6), " |
| 342 | + "(None, 4.4, 4.4, None), (None, 4.55, 4.55, 3), " |
| 343 | + "(None, 4.65, 4.65, None)]") |
| 344 | + assert tree.tree[tree.tree[3].parent].right == 3 |
| 345 | + tree._left_rotate(5, 3) |
| 346 | + assert str(tree) == original_tree |
| 347 | + tree.insert(4.54, 4.54) |
| 348 | + tree.insert(4.56, 4.56) |
| 349 | + tree._left_rotate(5, 8) |
| 350 | + assert tree.tree[tree.tree[8].parent].left == 8 |
0 commit comments