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')