Skip to content

Instantly share code, notes, and snippets.

@yuroyoro
Created June 8, 2009 02:39
Show Gist options
  • Select an option

  • Save yuroyoro/125581 to your computer and use it in GitHub Desktop.

Select an option

Save yuroyoro/125581 to your computer and use it in GitHub Desktop.
# -*- 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)
# -*- 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