示例#1
0
    def test_sanity(self):
        ilist = [2, 4, 1, 9, 7, 5, 3, 2, 3]
        olist = [1, 2, 2, 3, 3, 4, 5, 7, 9]
        # heap test
        from heap import Heap
        h = Heap(deepcopy(ilist))
        h.sanity()
        self.assertListEqual(h.sort(), olist)
        # min heap
        h = Heap(deepcopy(ilist), htype='min')
        h.sanity()
        self.assertListEqual(h.sort(), olist[::-1])
        # big array test
        array = range(500)
        random.shuffle(array)
        h = Heap(array)
        h.sanity()
        self.check_sorted(h.sort())

        # priority queue
        from heap import PriorityQueue
        q = PriorityQueue(deepcopy(ilist))
        q.sanity()
        # get top test
        top = q.find_top()
        self.assertEqual(top, max(ilist))
        self.assertEqual(top, q.pop_top())
        q.sanity()
        self.assertNotEqual(top, q.find_top())
        # update key test
        q.update_key(3, 10)  # upwards
        q.sanity()
        q.update_key(8, 0)  # downwards
        q.sanity()
        # insert key test
        q.insert_key(15)
        q.sanity()
        q.insert_key(-1)
        q.sanity()
        q.insert_key(4)
        q.sanity()