Add priority queue challenge

This commit is contained in:
Donne Martin
2017-03-30 05:42:41 -04:00
parent 1112520784
commit 3ecc5ed263
5 changed files with 556 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
from nose.tools import assert_equal
class TestPriorityQueue(object):
def test_priority_queue(self):
priority_queue = PriorityQueue()
assert_equal(priority_queue.extract_min(), None)
priority_queue.insert(PriorityQueueNode('a', 20))
priority_queue.insert(PriorityQueueNode('b', 5))
priority_queue.insert(PriorityQueueNode('c', 15))
priority_queue.insert(PriorityQueueNode('d', 22))
priority_queue.insert(PriorityQueueNode('e', 40))
priority_queue.insert(PriorityQueueNode('f', 3))
priority_queue.decrease_key('f', 2)
priority_queue.decrease_key('a', 19)
mins = []
while priority_queue.array:
mins.append(priority_queue.extract_min().key)
assert_equal(mins, [2, 5, 15, 19, 22, 40])
print('Success: test_min_heap')
def main():
test = TestPriorityQueue()
test.test_priority_queue()
if __name__ == '__main__':
main()