コード例 #1
0
ファイル: test_heap.py プロジェクト: dahuangfeng123/crawlmi
    def test_basic(self):
        h = Heap()
        self.assertEqual(len(h), 0)
        self.assertRaises(IndexError, h.peek)
        self.assertRaises(IndexError, h.pop)
        h.push(42)
        self.assertEqual(len(h), 1)
        self.assertEqual(h.peek(), 42)
        h.push(47)
        self.assertEqual(len(h), 2)
        self.assertEqual(h.peek(), 47)

        self.assertEqual(h.pop(), 47)
        self.assertEqual(h.peek(), 42)
        self.assertEqual(h.pop(), 42)
        self.assertRaises(IndexError, h.pop)
        self.assertEqual(len(h), 0)
コード例 #2
0
ファイル: test_heap.py プロジェクト: dahuangfeng123/crawlmi
 def test_random_case(self):
     rnd = random.Random(47)
     h = Heap()
     values = []
     operations = []
     for step in xrange(100):
         if len(h) and rnd.randint(1, 3) == 1:
             operations.append('pop')
             self.assertEqual(values.pop(), h.pop(), operations)
             if values:
                 self.assertEqual(values[-1], h.peek(), operations)
         else:
             v = rnd.randint(1, 50)
             h.push(v)
             values.append(v)
             operations.append('add %s' % v)
             values.sort()
             self.assertEqual(values[-1], h.peek(), operations)
         self.assertEqual(len(h), len(values), operations)