Exemplo n.º 1
0
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)
Exemplo n.º 2
0
class DeleteTests(unittest.TestCase):

    def setUp(self):
        self.tree = Tree(10)
        for i in [5, 15, 4, 6, 14, 17]:
            self.tree.insert(i)

    def test_delete_two_child(self):
        self.assertTrue(self.tree.contains(5))
        self.tree.delete(5)
        self.assertFalse(self.tree.contains(5))
        self.assertTrue(self.tree.contains(4))

    def test_delete_single_child(self):
        self.tree.insert(3)
        self.assertTrue(self.tree.contains(4))
        self.tree.delete(4)
        self.assertFalse(self.tree.contains(4))
        self.assertTrue(self.tree.contains(3))

    def test_delete_no_child(self):
        self.assertTrue(self.tree.contains(4))
        self.tree.delete(4)
        self.assertFalse(self.tree.contains(4))