Newer
Older
#!/usr/bin/env python3
# *-* coding:utf-8 *-*
import unittest
from bintree import BinTree, BinTreeNode
class TestBinTree(unittest.TestCase):
def test_create_has_root_none(self):
tree = BinTree()
self.assertIsNone(tree.root)
def test_has_insert_and_search(self):
tree = BinTree()
tree.insert(1)
self.assertIsInstance(tree.search(1), BinTreeNode)
self.assertIsNone(tree.search(0))
def test_insert_into_empty_tree(self):
tree = BinTree()
tree.insert(1)
self.assertIsNotNone(tree.root)
self.assertIsInstance(tree.root, BinTreeNode)
self.assertEqual(tree.root.value, 1)
def test_example(self):
values = [7, 3, 9, 2, 4, 8, 11]
tree = BinTree()
for value in values:
tree.insert(value)
for value in values:
node = tree.search(value)
self.assertIsInstance(node, BinTreeNode)
self.assertEqual(value, node.value)
node = tree.search(3)
self.assertEqual(node.value, 3)
self.assertEqual(node.left.value, 2)
self.assertEqual(node.right.value, 4)
class TestBinTreeNode(unittest.TestCase):
def test_creation(self):
node = BinTreeNode(5)
self.assertEqual(node.value, 5)
def test_has_left_and_right(self):
self.assertIn("left", node.__dict__)
self.assertIn("right", node.__dict__)
def test_has_insert_and_search(self):
node = BinTreeNode(0)
node.insert(1)
node.search(1)