Exemple #1
0
    def test_empty(self):
        mh = MinHeap()
        self.assertTrue(mh.empty())

        mh.append(1)
        self.assertFalse(mh.empty())

        mh.pop()
        self.assertTrue(mh.empty())
Exemple #2
0
    def test_min(self):
        mh = MinHeap()
        with self.assertRaises(IndexError):
            mh.min()

        mh.append(1)
        self.assertEqual(1, mh.min())
        self.assertEqual(1, mh.min())

        mh.append(1)
        self.assertEqual(1, mh.min())

        mh.pop()
        self.assertEqual(1, mh.min())

        mh.pop()
        with self.assertRaises(IndexError):
            mh.min()

        mh.append(3)
        self.assertEqual(3, mh.min())

        mh.append(1)
        self.assertEqual(1, mh.min())

        mh.pop()
        self.assertEqual(3, mh.min())
Exemple #3
0
    def test_len(self):
        mh = MinHeap()
        self.assertTrue(len(mh) == 0)

        mh.append(1)
        self.assertTrue(len(mh) == 1)

        mh.append(1)
        self.assertTrue(len(mh) == 2)

        mh.pop()
        self.assertTrue(len(mh) == 1)

        mh.pop()
        self.assertTrue(len(mh) == 0)
Exemple #4
0
    def test_append(self):
        mh = MinHeap()
        self.assertEqual(0, mh.size())

        mh.append(1)
        self.assertEqual(1, mh.size())

        mh.append(1)
        self.assertEqual(2, mh.size())

        mh.append(2)
        self.assertEqual(3, mh.size())
Exemple #5
0
    def test_pop(self):
        mh = MinHeap()
        with self.assertRaises(IndexError):
            mh.pop()

        mh.append(1)
        self.assertEqual(1, mh.pop())
        with self.assertRaises(IndexError):
            mh.pop()

        mh.append(9)
        mh.append(6)
        mh.append(5)
        mh.append(3)
        self.assertEqual(3, mh.pop())
        self.assertEqual(5, mh.pop())
        self.assertEqual(6, mh.pop())
        self.assertEqual(9, mh.pop())
        with self.assertRaises(IndexError):
            mh.pop()