def test_threeelements(self): """Tests when there are three elements.""" root = Node(key=42) left = Node(key=0, parent=root) right = Node(key=50, parent=root) root.left = left root.right = right self.assertEqual(findsuccessor(left), root) self.assertEqual(findsuccessor(root), right) self.assertEqual(findsuccessor(right), None)
def test_textbooktree(self): """Tests the tree provided by the textbook.""" A = Node(key=19) B = Node(key=7, parent=A) I = Node(key=43, parent=A) A.left = B A.right = I C = Node(key=3, parent=B) F = Node(key=11, parent=B) B.left = C B.right = F D = Node(key=2, parent=C) E = Node(key=5, parent=C) C.left = D C.right = E G = Node(key=17, parent=F) F.right = G H = Node(key=13, parent=G) G.left = H J = Node(23, parent=I) O = Node(47, parent=I) I.left = J I.right = O K = Node(key=37, parent=J) J.right = K L = Node(key=29, parent=K) N = Node(key=41, parent=K) K.left = L K.right = N M = Node(key=31, parent=L) L.right = M P = Node(key=53, parent=O) O.right = P self.assertEqual(findsuccessor(P), None) self.assertEqual(findsuccessor(G), A) self.assertEqual(findsuccessor(A), J)
def test_singleelement(self): """Tests when there is only one element. No successor here.""" root = Node(key=42) self.assertEqual(findsuccessor(root), None)