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)
Beispiel #7
0
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)
Beispiel #9
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()
Beispiel #10
0
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)