Esempio n. 1
0
class TestDeleteMin(unittest.TestCase):
    def setUp(self):
        self.h = Heap()
        self.h.insert(5, 'Five')

    def test_one_and_empty(self):
        self.assertEqual(self.h.delete_min(), 'Five')
        self.assertIsNone(self.h.delete_min())

    def test_left(self):
        self.h.insert(8, 'Eight')
        self.assertEqual(self.h.delete_min(), 'Five')
        self.assertEqual(self.h.heap[0].val, 'Eight')

    def test_right(self):
        self.h.insert(8, 'Eight')
        self.h.insert(10, 'Ten')
        self.assertEqual(self.h.delete_min(), 'Five')
        self.assertEqual(self.h.heap[0].val, 'Eight')
        self.assertEqual(self.h.heap[1].val, 'Ten')

    def test_dupe(self):
        self.h.insert(5, 'Five')
        self.assertEqual(self.h.delete_min(), 'Five')
        self.assertEqual(self.h.heap[0].val, 'Five')

    def test_new_min(self):
        self.h.insert(8, 'Eight')
        self.h.insert(10, 'Ten')
        self.h.insert(3, 'Three')
        self.assertEqual(self.h.delete_min(), 'Three')
        self.assertEqual(self.h.heap[0].val, 'Five')

    def test_multiple(self):
        self.h.insert(3, 'Three')
        self.h.insert(8, 'Eight')
        self.h.insert(10, 'Ten')
        self.h.insert(13, 'Thirteen')
        self.h.insert(11, 'Eleven')
        self.h.insert(12, 'Twelve')
        self.h.insert(4, 'Four')
        self.assertEqual(self.h.delete_min(), 'Three')
        self.assertEqual(self.h.delete_min(), 'Four')
        self.assertEqual(self.h.delete_min(), 'Five')
        self.assertEqual(self.h.delete_min(), 'Eight')
        self.assertEqual(self.h.delete_min(), 'Ten')