def test_determine_node_to_add_to_smaller_value_one_left_child_exists(
         self):
     bt = BinaryTree()
     bt.root = Node(4)
     bt.root.left_child = Node(3)
     node_to_add_to = bt._determine_node_to_add_to(bt.root, 2)
     self.assertEqual(bt.root.left_child, node_to_add_to)
 def test_determine_node_to_add_to_larger_value_one_right_child_exists(
         self):
     bt = BinaryTree()
     bt.root = Node(4)
     bt.root.right_child = Node(8)
     node_to_add_to = bt._determine_node_to_add_to(bt.root, 5)
     self.assertEqual(bt.root.right_child, node_to_add_to)
 def test_determine_node_to_add_to_multiple_nodes_exist(self):
     bt = BinaryTree()
     bt.root = Node(4)
     bt.root.left_child = Node(2)
     bt.root.right_child = Node(6)
     bt.root.left_child.right_child = Node(3)
     bt.root.right_child.left_child = Node(4)
     bt.root.right_child.right_child = Node(8)
     # test 1
     node_to_add_to = bt._determine_node_to_add_to(bt.root, 5)
     self.assertEqual(bt.root.right_child.left_child, node_to_add_to)
     # test 2
     node_to_add_to = bt._determine_node_to_add_to(bt.root, 1)
     self.assertEqual(bt.root.left_child, node_to_add_to)
     # test 3
     node_to_add_to = bt._determine_node_to_add_to(bt.root, 2)
     self.assertEqual(bt.root.left_child.right_child, node_to_add_to)
     # test 4
     node_to_add_to = bt._determine_node_to_add_to(bt.root, 9)
     self.assertEqual(bt.root.right_child.right_child, node_to_add_to)
 def test_determine_node_to_add_to_root_only_larger_value(self):
     bt = BinaryTree()
     bt.root = Node(4)
     node_to_add_to = bt._determine_node_to_add_to(bt.root, 5)
     self.assertEqual(bt.root, node_to_add_to)