Exemplo n.º 1
0
 def test_tree_insertion_equal_node(self):
     tree = Tree()
     tree.insert(Node.factory(12))
     tree.insert(Node.factory(12))
     self.assertIsNotNone(tree.root_node)
     self.assertIsNotNone(tree.root_node.value)
     self.assertEqual(12, tree.root_node.value)
     self.assertIsNone(tree.root_node.left.value)
     self.assertIsNone(tree.root_node.right.value)
Exemplo n.º 2
0
 def test_node_assignment(self):
     node1 = Node.factory(25)
     node2 = Node.factory(None)
     self.assertIsNone(node2.value)
     self.assertIsNone(node2.left.value)
     self.assertIsNone(node2.right.value)
     node2.assign(node1)
     self.assertEqual(25, node2.value)
     self.assertIsNone(node2.left.value)
     self.assertIsNone(node2.right.value)
     node1.left = Node.factory(15)
     node1.right = Node.factory(35)
     node2.assign(node1)
     self.assertEqual(25, node2.value)
     self.assertEqual(15, node2.left.value)
     self.assertEqual(35, node2.right.value)
Exemplo n.º 3
0
 def test_tree_multi_level_insertion(self):
     tree = Tree()
     tree.insert(Node.factory(12))
     tree.insert(Node.factory(12))
     tree.insert(Node.factory(10))
     tree.insert(Node.factory(11))
     tree.insert(Node.factory(1))
     tree.insert(Node.factory(100))
     self.assertEqual(12, tree.root_node.value)
     self.assertEqual(100, tree.root_node.right.value)
     self.assertEqual(10, tree.root_node.left.value)
     self.assertEqual(11, tree.root_node.left.right.value)
     self.assertEqual(1, tree.root_node.left.left.value)
Exemplo n.º 4
0
 def test_deletion_leaf_node(self):
     tree = Tree()
     tree.insert(Node.factory(12))
     tree.insert(Node.factory(10))
     tree.insert(Node.factory(11))
     tree.insert(Node.factory(1))
     tree.insert(Node.factory(100))
     tree.delete(Node.factory(1))
     self.assertTrue(tree.search(Node.factory(12)))
     self.assertTrue(tree.search(Node.factory(10)))
     self.assertTrue(tree.search(Node.factory(11)))
     self.assertFalse(tree.search(Node.factory(1)))
     self.assertTrue(tree.search(Node.factory(100)))
     self.assertEqual(12, tree.root_node.value)
     self.assertEqual(100, tree.root_node.right.value)
     self.assertEqual(10, tree.root_node.left.value)
     self.assertEqual(11, tree.root_node.left.right.value)
     self.assertEqual(None, tree.root_node.left.left.value)
     self.assertFalse(tree.root_node.left.left.value == 1)
Exemplo n.º 5
0
 def test_tree_search(self):
     tree = Tree()
     tree.insert(Node.factory(12))
     tree.insert(Node.factory(12))
     tree.insert(Node.factory(10))
     tree.insert(Node.factory(11))
     tree.insert(Node.factory(1))
     tree.insert(Node.factory(100))
     self.assertTrue(tree.search(Node.factory(12)))
     self.assertTrue(tree.search(Node.factory(10)))
     self.assertTrue(tree.search(Node.factory(11)))
     self.assertTrue(tree.search(Node.factory(1)))
     self.assertTrue(tree.search(Node.factory(100)))
     self.assertFalse(tree.search(Node.factory(None)))
     self.assertFalse(tree.search(Node.factory(123)))
     self.assertFalse(tree.search(Node.factory(0)))
     self.assertFalse(tree.search(Node.factory(-01)))
     self.assertFalse(tree.search(Node.factory(1001)))
Exemplo n.º 6
0
 def test_deletion_node_with_two_children(self):
     tree = Tree()
     tree.insert(Node.factory(12))
     tree.insert(Node.factory(10))
     tree.insert(Node.factory(11))
     tree.insert(Node.factory(1))
     tree.insert(Node.factory(100))
     tree.insert(Node.factory(99))
     tree.delete(Node.factory(10))
     self.assertTrue(tree.search(Node.factory(12)))
     self.assertFalse(tree.search(Node.factory(10)))
     self.assertTrue(tree.search(Node.factory(11)))
     self.assertTrue(tree.search(Node.factory(1)))
     self.assertTrue(tree.search(Node.factory(100)))
     self.assertTrue(tree.search(Node.factory(99)))
     self.assertEqual(1, tree.root_node.left.value)
     self.assertEqual(11, tree.root_node.left.right.value)
Exemplo n.º 7
0
 def __init__(self, file_path):
     self.tree = Tree()
     with open(file_path) as f:
         for line in f:
             for word in line.split():
                 self.tree.insert(Node.factory(WordWrapper(word)))
Exemplo n.º 8
0
 def test_node_factory(self):
     node = Node.factory(12)
     self.assertEqual(12, node.value)
     self.assertIsNone(node.left.value)
     self.assertIsNone(node.right.value)
Exemplo n.º 9
0
 def test_node_factory_none_case(self):
     self.assertIsNone(Node.factory(None).value)
     self.assertIsNone(Node.factory(None).left.value)
     self.assertIsNone(Node.factory(None).right.value)