示例#1
0
def test__AVLTree_is_avl_satisified0():
    avl = AVLTree()
    avl.root = Node(0)
    avl.root.left = Node(-1)
    avl.root.left.left = Node(-2)
    assert avl.is_bst_satisfied()
    assert not avl.is_avl_satisfied()
示例#2
0
def test__AVLTree_is_avl_satisified2():
    avl = AVLTree()
    avl.root = Node(0)
    avl.root.right = Node(1)
    avl.root.right.right = Node(2)
    assert avl.is_bst_satisfied()
    assert not avl.is_avl_satisfied()
示例#3
0
def test__AVLTree__right_rotate4():
    rotated = AVLTree()
    rotated.root = AVLTree._right_rotate(avltree4.root)
    print('avltree4=', avltree4)
    print('rotated=', rotated)
    assert rotated.is_bst_satisfied()
    assert rotated.to_list('inorder') == avltree4.to_list('inorder')
示例#4
0
def test__AVLTree_is_avl_satisified9():
    avl = AVLTree()
    avl.root = Node(0)
    avl.root.left = Node(-2)
    avl.root.left.left = Node(-3)
    avl.root.left.left.left = Node(-4)
    avl.root.left.left.left.left = Node(-5)
    avl.root.left.right = Node(-1)
    avl.root.right = Node(2)
    avl.root.right.left = Node(1)
    avl.root.right.right = Node(3)
    avl.root.right.right.right = Node(4)
    assert avl.is_bst_satisfied()
    assert not avl.is_avl_satisfied()
示例#5
0
def test__AVLTree__right_rotate3():
    rotated = AVLTree()
    rotated.root = AVLTree._right_rotate(avltree3.root)
    assert rotated.is_bst_satisfied()
    assert rotated.to_list('inorder') == avltree3.to_list('inorder')
示例#6
0
def test__AVLTree__left_rotate1():
    rotated = AVLTree()
    rotated.root = AVLTree._left_rotate(avltree1.root)
    assert rotated.is_bst_satisfied()
    assert rotated.to_list('inorder') == avltree1.to_list('inorder')
示例#7
0
def test__AVLTree_is_avl_satisified5():
    avl = AVLTree()
    avl.root = Node(0)
    assert avl.is_bst_satisfied()
    assert avl.is_avl_satisfied()
示例#8
0
from Trees.BinaryTree import BinaryTree, Node
from Trees.BST import BST
from Trees.AVLTree import AVLTree

################################################################################
# these tests are specific for AVLTree rotations

avltree0 = AVLTree()
avltree0.root = Node(5)
avltree0.root.left = Node(3)
avltree0.root.left.left = Node(1)
avltree0.root.right = Node(7)

avltree1 = AVLTree()
avltree1.root = Node(5)
avltree1.root.left = Node(3)
avltree1.root.left.right = Node(4)
avltree1.root.right = Node(7)

avltree2 = AVLTree()
avltree2.root = Node(5)
avltree2.root.left = Node(3)
avltree2.root.right = Node(7)
avltree2.root.right.left = Node(6)

avltree3 = AVLTree()
avltree3.root = Node(5)
avltree3.root.left = Node(3)
avltree3.root.right = Node(7)
avltree3.root.right.right = Node(9)