def test_pq1(self): pq = MinPQ() self.assertTrue(pq.is_empty()) for i in reversed(range(5)): print("pq.insert(", i, ")") pq.insert(i) self.assertEqual(pq.size(), 5) self.assertFalse(pq.is_empty()) self.assertEqual(pq.min(), 0)
def test_pq(self): pq = MinPQ([3, 10, 231, 5]) self.assertEqual(pq.is_empty(), False) self.assertEqual(pq.size(), 4) self.assertEqual(pq.capacity, 4) self.assertEqual(pq.min(), 3) self.assertEqual(pq.del_min(), 3) self.assertEqual(pq.del_min(), 5) self.assertEqual(pq.del_min(), 10) self.assertEqual(pq.del_min(), 231) self.assertRaises(IndexError, pq.min) self.assertRaises(IndexError, pq.del_min) self.assertEqual(pq.is_empty(), True) self.assertEqual(pq.num_items, 0)
def test_pq4(self): arr = [5, 2, 3, 4, 1] print(arr) pq = MinPQ(arr) print("pq.heapify(",arr,")") self.assertEqual(pq.size(), 5) self.assertEqual(pq.capacity, 5) self.assertFalse(pq.is_empty()) self.assertEqual(pq.min(), 1) self.assertEqual(pq.del_min(), 1) self.assertEqual(pq.del_min(), 2) self.assertEqual(pq.del_min(), 3) self.assertEqual(pq.del_min(), 4) self.assertEqual(pq.del_min(), 5) self.assertTrue(pq.is_empty())
def test_full_functionality(self): """ Tests the bulk functionality of the MinPQ class""" pq_test = MinPQ() pq_test.insert(6) self.assertEqual(2, pq_test.capacity) self.assertEqual(pq_test.size(), pq_test.num_items) pq_test.insert(7) self.assertEqual([6, 7], pq_test.arr) pq_test.insert(2) self.assertEqual(3, pq_test.size()) self.assertEqual([2, 7, 6, None], pq_test.arr) self.assertFalse(pq_test.is_empty()) self.assertEqual(2, pq_test.del_min()) self.assertEqual(6, pq_test.del_min()) self.assertEqual(7, pq_test.del_min()) self.assertTrue(pq_test.is_empty())
def test_use_case_two(self): """ Implementation of use case 2 as outlined in lab instructions""" pq_test = MinPQ([5, 4, 3, 2, 1]) self.assertEqual(5, pq_test.size()) self.assertEqual(5, pq_test.capacity) self.assertEqual(pq_test.num_items, pq_test.capacity) self.assertTrue(pq_test.arr == [1, 2, 3, 5, 4]) self.assertEqual(1, pq_test.min()) self.assertEqual(1, pq_test.del_min()) self.assertEqual(2, pq_test.del_min()) self.assertFalse(pq_test.is_empty()) self.assertEqual(3, pq_test.del_min()) self.assertEqual(4, pq_test.del_min()) self.assertEqual(5, pq_test.del_min()) self.assertEqual(2, pq_test.capacity) self.assertEqual(0, pq_test.size()) self.assertTrue(pq_test.is_empty())
def test_2(self): pq = MinPQ([5, 4, 3, 2, 1]) self.assertEqual(pq.size(), 5) self.assertTrue(pq.capacity == 5) self.assertTrue(pq.capacity == pq.num_items) self.assertTrue(pq.arr == [1, 2, 3, 5, 4]) self.assertEqual(pq.min(), 1) self.assertEqual(pq.del_min(), 1) self.assertEqual(pq.del_min(), 2) self.assertEqual(pq.del_min(), 3) self.assertEqual(pq.del_min(), 4) self.assertEqual(pq.del_min(), 5) self.assertTrue(pq.capacity == 2) self.assertEqual(pq.size(), 0) self.assertTrue(pq.is_empty())
def test_1(self): pq = MinPQ() pq.insert(5) pq.insert(3) self.assertEqual(pq.capacity, 2) pq.insert(6) self.assertEqual(pq.size(), 3) self.assertTrue(pq.capacity == 4) self.assertEqual(pq.min(), 3) self.assertEqual(pq.del_min(), 3) self.assertEqual(pq.del_min(), 5) self.assertEqual(pq.del_min(), 6) self.assertEqual(pq.size(), 0) self.assertTrue(pq.is_empty()) self.assertTrue(pq.capacity == 2)
def test_use_case_one(self): """ Implementation of use case 1 as outlined in lab instructions""" pq_test = MinPQ() pq_test.insert(5) pq_test.insert(3) self.assertTrue(pq_test.capacity == 2) pq_test.insert(6) self.assertEqual(3, pq_test.size()) self.assertEqual(3, pq_test.min()) self.assertEqual(3, pq_test.del_min()) self.assertEqual(5, pq_test.del_min()) self.assertEqual(6, pq_test.del_min()) self.assertEqual(0, pq_test.size()) self.assertTrue(pq_test.is_empty()) self.assertEqual(2, pq_test.capacity)
def test_pq3(self): pq = MinPQ() self.assertTrue(pq.is_empty()) i = 1 print("pq.insert(", i, ")") pq.insert(i) self.assertEqual(pq.min(), 1) i = 5 print("pq.insert(", i, ")") pq.insert(i) self.assertEqual(pq.min(), 1) i = 3 print("pq.insert(", i, ")") pq.insert(i) self.assertEqual(pq.del_min(), 1) i = 4 print("pq.insert(", i, ")") pq.insert(i) self.assertEqual(pq.min(), 3) i = 2 print("pq.insert(", i, ")") pq.insert(i) self.assertEqual(pq.min(), 2) self.assertEqual(pq.del_min(), 2)