Beispiel #1
0
class TestTree(unittest.TestCase):
    def setUp(self):
        # Creating the tree
        self.tree = Tree()
        self.tree.insertData(3)
        self.tree.insertData(1)
        self.tree.insertData(7)
        self.tree.insertData(5)

    def tearDown(self):
        self.tree = None

    def testInsertData(self):
        root = self.tree.root
        self.assertEqual(root.data, 3)
        self.assertEqual(root.lchild.data, 1)
        self.assertEqual(root.rchild.data, 7)
        self.assertEqual(root.rchild.lchild.data, 5)

    def testDelete(self):
        root = self.tree.root
        # Testing deletion of node with 2 children.
        self.tree.delete(root, 3)
        self.assertEqual(root.data, 1)
        # Testing deletion of node with 1 child.
        self.tree.delete(root, 7)
        self.assertEqual(root.rchild.data, 5)
        # Testing deletion of leaf node.
        self.tree.delete(root, 5)
        self.assertEqual(root.rchild, None)

    def testIsKeyPresent(self):
        root = self.tree.root
        isKeyPresent = self.tree.isKeyPresent(root, 3)
        self.assertTrue(isKeyPresent)
        isKeyPresent = self.tree.isKeyPresent(root, 9)
        self.assertFalse(isKeyPresent)

    def testLargest(self):
        root = self.tree.root
        largest = self.tree.largest(root)
        self.assertEqual(largest.data, 7)
Beispiel #2
0
class TestTree(unittest.TestCase):
  def setUp(self):
    # Creating the tree
    self.tree = Tree()
    self.tree.insertData(3)
    self.tree.insertData(1)
    self.tree.insertData(7)
    self.tree.insertData(5)

  def tearDown(self):
    self.tree = None

  def testInsertData(self):
    root = self.tree.root
    self.assertEqual(root.data, 3)
    self.assertEqual(root.lchild.data, 1)
    self.assertEqual(root.rchild.data, 7)
    self.assertEqual(root.rchild.lchild.data, 5)

  def testDelete(self):
    root = self.tree.root
    # Testing deletion of node with 2 children.
    self.tree.delete(root, 3)
    self.assertEqual(root.data, 1)
    # Testing deletion of node with 1 child.
    self.tree.delete(root, 7)
    self.assertEqual(root.rchild.data, 5)
    # Testing deletion of leaf node.
    self.tree.delete(root, 5)
    self.assertEqual(root.rchild, None)

  def testIsKeyPresent(self):
    root = self.tree.root
    isKeyPresent = self.tree.isKeyPresent(root, 3)
    self.assertTrue(isKeyPresent)
    isKeyPresent = self.tree.isKeyPresent(root, 9)
    self.assertFalse(isKeyPresent)

  def testLargest(self):
    root = self.tree.root
    largest = self.tree.largest(root)
    self.assertEqual(largest.data, 7)
Beispiel #3
0
tree.insertData(46)
tree.insertData(49)
tree.insertData(55)
tree.insertData(52)
tree.insertData(51)
tree.insertData(29)
tree.insertData(35)
tree.insertData(32)
tree.insertData(36)

# To test immutability. 
# The code below throws an error becuase the object is now immutable
#tree.newProp = "testing immutability"

# Inorder traversal of a tree
print("Inorder traversal:")
tree.inorderPrint(tree.root)

# Check if a particular key is present in a tree or not
key = 3
isKeyPresent = tree.isKeyPresent(tree.root, key)
print("Is Key Present: ", isKeyPresent)

# Deleting a few nodes from the tree
tree.delete(tree.root, 50)
tree.delete(tree.root, 36)
tree.delete(tree.root, 40)

# Inorder traversal after deleting the nodes
print("Inorder traversal:")
tree.inorderPrint(tree.root)