def testRotateRightSingleChild(self): node = BSTNode(10) node.insert(8) ''' 10 8 / \ 8 ==> 10 ''' node.rotate_right() assert node.left is None assert node.value == 8 assert node.right.value == 10 assert node.right.parent == node
def testRotateRightSingleChild(self): node = BSTNode(10) node.insert(8) ''' 10 8 / \ 8 ==> 10 ''' node.rotate_right() assert node.left is None assert node.value == 8 assert node.right.value == 10 assert node.right.parent == node
def testRotateRight(self): node = BSTNode(10) node.insert(8) node.insert(7) node.insert(9) node.insert(11) ''' 10 8 / \ / \ 8 11 ==> 7 10 / \ / \ 7 9 9 11 ''' assert node.value == 10 assert node.left.value == 8 assert node.left.left.value == 7 assert node.left.right.value == 9 assert node.right.value == 11 # All nodes are reachable for i in range(7, 11): assert node.search(i) is not None and node.search(i).value == i node.rotate_right() assert node.left.left is None assert node.left.right is None assert node.value == 8 assert node.left.value == 7 assert node.right.value == 10 assert node.right.left.value == 9 assert node.right.right.value == 11 assert node.parent is None assert node.left.parent is node assert node.right.parent is node assert node.right.left.parent is node.right assert node.right.right.parent is node.right # All nodes still are reachable for i in range(7, 11): assert node.search(i) is not None and node.search(i).value == i
def testRotateRight(self): node = BSTNode(10) node.insert(8) node.insert(7) node.insert(9) node.insert(11) ''' 10 8 / \ / \ 8 11 ==> 7 10 / \ / \ 7 9 9 11 ''' assert node.value == 10 assert node.left.value == 8 assert node.left.left.value == 7 assert node.left.right.value == 9 assert node.right.value == 11 # All nodes are reachable for i in range(7, 11): assert node.search(i) is not None and node.search(i).value == i node.rotate_right() assert node.left.left is None assert node.left.right is None assert node.value == 8 assert node.left.value == 7 assert node.right.value == 10 assert node.right.left.value == 9 assert node.right.right.value == 11 assert node.parent is None assert node.left.parent is node assert node.right.parent is node assert node.right.left.parent is node.right assert node.right.right.parent is node.right # All nodes still are reachable for i in range(7, 11): assert node.search(i) is not None and node.search(i).value == i
def testRotateRightTwoChildren(self): node = BSTNode(10) node.insert(8) node.insert(11) ''' 10 8 / \ \ 8 11 ==> 10 \ 11 ''' node.rotate_right() assert node.left is None assert node.value == 8 assert node.right.value == 10 assert node.right.right.value == 11 assert node.right.parent is node assert node.right.right.parent is node.right
def testRotateRightTwoChildren(self): node = BSTNode(10) node.insert(8) node.insert(11) ''' 10 8 / \ \ 8 11 ==> 10 \ 11 ''' node.rotate_right() assert node.left is None assert node.value == 8 assert node.right.value == 10 assert node.right.right.value == 11 assert node.right.parent is node assert node.right.right.parent is node.right