def test_get_node(self): tree = BST() tree.add_value(100) tree.add_value(80) tree.add_value(90) tree.add_value(200) tree.add_value(70) self.assertEqual(BSTNode(70), tree.get_node(70))
def test_get_max_node2(self): tree = BST() tree.add_value(100) tree.add_value(80) tree.add_value(90) tree.add_value(200) tree.add_value(70) node_to_remove = tree.get_node(80) self.assertEqual(BSTNode(90), tree.get_max_node(node_to_remove))
def test_get_node(self): tree = BST() tree.add_value(100) self.assertEqual(tree.get_node(100).value, 100) tree.add_value(80) self.assertEqual(tree.get_node(80).value, 80) tree.add_value(200) self.assertEqual(tree.get_node(200).value, 200) tree.add_value(60) self.assertEqual(tree.get_node(60).value, 60) tree.add_value(90) self.assertEqual(tree.get_node(90).value, 90) tree.add_value(0) self.assertEqual(tree.get_node(0).value, 0) tree.add_value(-3) self.assertEqual(tree.get_node(-3).value, -3) tree.add_value(1) self.assertEqual(tree.get_node(1).value, 1)
def testGetNode(self): tree = BST() tree.add_value(200) tree.add_value(100) tree.add_value(300) tree.add_value(50) tree.add_value(110) tree.add_value(250) tree.add_value(500) tree.add_value(25) tree.add_value(75) tree.add_value(105) tree.add_value(150) tree.add_value(225) tree.add_value(275) retrievedNode = tree.get_node(105) self.assertEqual(retrievedNode.value, 105)
def test_get_node(self): tree = BST() fill_int_tree(tree) value_node = tree.get_node(80) self.assertEqual(value_node.value, 80)
def test_str_trees(self): tree = BST(None, lambda x: x.lower()) fill_str_tree(tree) value_node = tree.get_node("orange") self.assertEqual(value_node.value, "Orange")
def test_init_(self, root: Optional[BSTNode[T]] = None, key: Callable[[T], K] = lambda x: x) -> None: node = BSTNode(45) tree = BST(node) self.assertEqual(tree.get_node(45).value, 45)
def test_get_node_not_equal(self): tree = BST() tree.add_value(100) with self.assertRaises(MissingValueError): tree.get_node(90)
def test_add_value(self): tree = BST() tree.add_value(100) self.assertEqual(tree.get_node(100).value, 100) self.assertEqual(len(tree), 1)
def test_get_node_empty(self): tree = BST() with self.assertRaises(EmptyTreeError): tree.get_node(100)
print(str(donor_node.value)) donor_node = donor_tree.successor(donor_node) elif command == 'cheap': donor_node = donor_tree.get_min_node() elif command == 'rich': donor_node = donor_tree.get_max_node() elif command == 'who': amount_arg = sys.argv[3] if amount_arg[0] == '+': # who +amount: Prints the first donor that donated at least amount if any amount = int(amount_arg[1:]) donor_node = donor_tree.upper_bound(amount) if not donor_node: print('No Match') elif amount_arg[0] == '-': # who -amount: Prints the first donor that donated no more than amount if any amount = int(amount_arg[1:]) donor_node = donor_tree.lower_bound(amount) if not donor_node: print('No Match') else: # who amount: Prints the first donor that who donated amount if any amount = int(amount_arg) try: donor_node = donor_tree.get_node(amount) except MissingValueError: print('No Match') if donor_node is not None: print(str(donor_node.value))
elif cmd == 'list_above': tree.inorder(results) no_match = True for x in results: if x.value.amount >= amount: print (x.value) no_match = False break if no_match: print ("No Match") elif cmd == 'list_below': tree.inorder(results) no_match = True for x in reversed(results): if x.value.amount < amount: print (x.value) no_match = False break if no_match: print ("No Match") elif cmd == 'who': try: tree.get_node(amount) except: print ("No Match") else: print(tree.get_node(amount).value)
d = BSTNode(37) e = BSTNode(45) a.left = b b.left = c c.right = d b.right = e tree = BST(a) print("Tree height:", tree.height()) print("Tree length:", len(tree)) node_min = tree.get_min_node() print("Tree min:", node_min.value) node_max = tree.get_max_node() print("Tree max:", node_max.value) node_45 = tree.get_node(45) print("Tree 45", node_45.value) node_50 = tree.get_node(50) print("Tree 50", node_50.value) new_tree = BST() new_tree.add_value(100) new_tree.add_value(75) new_tree.add_value(200) new_tree.add_value(300) new_tree.add_value(30) new_tree.add_value(30) new_tree.add_value(30) print("Tree height:", new_tree.height()) print("Tree length:", len(new_tree)) print("new_tree added value")