def test_not_accepting_duplicates(self): var = globalVar() #Contains variables for tree insertion bTree = BinaryTree() bTree.insert(value= var.p1) self.assertTrue(bTree.insert(value= var.p2)) with self.assertRaises(Exception): #Insert for second time, expect an exception bTree.insert(value= var.p1)
def test_findMin(self): var = globalVar() #Contains variables for tree insertion bTree = BinaryTree() bTree.insert(value= var.p1) bTree.insert(value= var.p2) self.assertEqual(bTree.findMin().value, var.p1) bTree.insert(value= var.p5) self.assertEqual(bTree.findMin().value, var.p5)
def test_findRightMost(self): var = globalVar() #Contains variables for tree insertion bTree = BinaryTree() bTree.insert(value= var.p1) bTree.insert(value= var.p2) self.assertEqual(bTree.findRightMost(bTree._root).value, var.p2) bTree.insert(value= var.p5) bTree.insert(value= var.p4) self.assertEqual(bTree.findRightMost(bTree._root).value, var.p4)
def test_delete(self): var = globalVar() #Contains variables for tree insertion bTree = BinaryTree() bTree.insert(value= var.p1) bTree.insert(value= var.p2) bTree.insert(value= var.p3) self.assertEqual(bTree.find(var.p3).value, var.p3) bTree.delete(var.p3) with self.assertRaises(Exception): bTree.find(var.p3).value#Looking for deleted element
def test_findLeftMost(self): var = globalVar() #Contains variables for tree insertion bTree = BinaryTree() bTree.insert(value= var.p1) bTree.insert(value= var.p2) bTree.insert(value= var.p5) bTree.insert(value= var.p4) self.assertEqual(bTree.findLeftMost(bTree._root).value, var.p5) #The smallest value, ('AASE') bTree.insert(value= var.p6) bTree.insert(value= var.p3) self.assertEqual(bTree.findLeftMost(bTree._root).value, var.p6)
def test_root(self): var = globalVar() #Contains variables for tree insertion bTree = BinaryTree() bTree.insert(value= var.p1) bTree.insert(value= var.p2) bTree.insert(value= var.p3) self.assertEqual(bTree._root.value, var.p1) bTree2 = BinaryTree() bTree2.insert(value= var.p4) bTree2.insert(value= var.p5) self.assertEqual(bTree2._root.value, var.p4)
def test_binarytree(): test_passed = True test_database = pickle.load( open( 'testdatabase.p', 'rb' ) ) test_database = test_database['binarytree'] keys = test_database['keys'] result = test_database['result'] BT = BinaryTree() for key in keys: BT.insert(key,None) nodes = [] nodes.append(BT._root) nodes_checked = 0 while len(nodes) > 0: node = nodes.pop() if not node is None: nodes_checked += 1 nodes.append(node._left) nodes.append(node._right) target = result[node._key] if node._left is None: if not target['l'] is None: test_passed = False else: if not node._left._key == target['l']: test_passed = False if node._right is None: if not target['r'] is None: test_passed = False else: if not node._right._key == target['r']: test_passed = False BT = BinaryTree() BT.insert('1','a') BT.insert('1','b') BT.insert('1','c') if len(BT.get('1')) != 3: test_passed = False return test_passed
class BinaryTreeTests(unittest.TestCase): def setUp(self): self.tree = Tree(7) def test_insert(self): self.tree.insert(9) self.assertTrue(self.tree.contains(9)) def test_reinsert(self): self.tree.insert(7) self.assertEqual(self.tree.size(), 1) def test_contains_false(self): self.assertFalse(self.tree.contains(6)) def test_size(self): self.assertEqual(self.tree.size(), 1) self.tree.insert(6) self.assertEqual(self.tree.size(), 2) def test_depth(self): self.tree.insert(8) self.tree.insert(9) self.tree.insert(10) self.tree.insert(5) self.assertEqual(self.tree.depth(), 4) def test_balance_pos(self): self.tree.insert(10) self.tree.insert(8) self.tree.insert(9) self.assertEqual(self.tree.balance(), 3) def test_balance_neg(self): self.tree.insert(1) self.tree.insert(2) self.tree.insert(9) self.assertEqual(self.tree.balance(), -1) def test_balance_even(self): self.tree.insert(10) self.tree.insert(4) self.assertEqual(self.tree.balance(), 0)
def trimTree(root, minVal, maxVal): if root is None: return root root.left = trimTree(root.left, minVal, maxVal) root.right = trimTree(root.right, minVal, maxVal) if minVal <= root.data <= maxVal: return root if root.data > maxVal: return root.left if root.data < minVal: return root.right root.left() bt = BinaryTree() bt.insert(50) bt.insert(30) bt.insert(20) bt.insert(40) bt.insert(70) bt.insert(60) bt.insert(80) # bt.inorder() trimTree(bt.root, 30, 80) bt.inorder()
from binarytree import BinaryTree from collections import namedtuple Person = namedtuple('Person', 'etternavn fornavn adresse postnr area') p1 = Person('KRISTIANSEN', 'MORTEN KRISTIAN', 'LEINAHYTTA 36', '7224', 'MELHUS') p2 = Person('STAVANG', 'ELISABETH', 'ESPENES 116', '4684', 'BYGLAND') p3 = Person('SYVERSEN', 'HARISHANKAR', 'SISIKVEIEN 84', '1390', 'VOLLEN') p4 = Person('TYRIBERGET', 'EDWARD J.', 'HALLAND JOHAN 66', '5649', 'EIKELANDSOSEN') p5 = Person('AASE', 'TRINE', 'LEINAHYTTA 360', '7200', 'ROGNE') bTree = BinaryTree() bTree.insert(value=p1) bTree.insert(value=p2) bTree.insert(value=p3) bTree.insert(value=p4) bTree.insert(value=p5) print(bTree.delete(Person('KRISTIANSEN')).value) #print(bTree.find(p2).value) #print(bTree.find(p2).value) #print(bTree.findMin().value) #print(bTree._root.value) #print(bTree.find(p1).value)