Created
June 8, 2009 02:39
-
-
Save yuroyoro/125581 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # -*- coding: utf-8 -*- | |
| # | |
| class PriorityQueue(object): | |
| def __init__(self): | |
| self._queue = [] | |
| def push( self, obj , priority=0): | |
| self._queue.append( (obj, priority) ) | |
| return self | |
| def pop( self ): | |
| return self._queue.pop()[0] if self._queue else None | |
| def size( self ): | |
| return len(self._queue) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # -*- coding: utf-8 -*- | |
| import unittest | |
| from priority_queue import PriorityQueue | |
| class TestPriorityQueue( unittest.TestCase ): | |
| def setUp( self ): | |
| pass | |
| def teardown( self ): | |
| pass | |
| def testPriorityQueueCanPush(self): | |
| """プライオリティキューにキューとして突っ込めるか確かめます""" | |
| queue = PriorityQueue() | |
| self.assertEqual(queue, queue.push("abesi", 0)) | |
| self.assertEqual(queue, queue.push(1020 )) | |
| def testPriorityQueueCanReturnSize(self): | |
| """プライオリティキューはサイズを返すことができます""" | |
| queue = PriorityQueue() | |
| self.assertEqual(0, queue.size()) | |
| queue.push("abesi") | |
| self.assertEqual(1, queue.size()) | |
| def testPriorityQueueCanPopWithoutPriority(self): | |
| """プライオリティキューがPriority指定なしでもpopできるか確かめます""" | |
| queue = PriorityQueue() | |
| self.assertEqual(None , queue.pop() ) | |
| queue.push(1) | |
| self.assertEqual(1, queue.pop()) | |
| self.assertEqual(0, queue.size()) | |
| queue.push("1") | |
| queue.push("") | |
| queue.push({ 'hoge':'bar', 'fuge':'foo'}) | |
| self.assertEqual({ 'hoge':'bar', 'fuge':'foo'}, queue.pop()) | |
| self.assertEqual(2, queue.size()) | |
| self.assertEqual("", queue.pop()) | |
| self.assertEqual(1, queue.size()) | |
| self.assertEqual("1", queue.pop()) | |
| self.assertEqual(0, queue.size()) | |
| def testPriorityQueueCanPopWithPriority(self): | |
| """プライオリティキューが、優先度順にPop出来るかどうかを確かめます""" | |
| pass | |
| if __name__ == "__main__": | |
| unittest.main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment