UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

180 lines (139 loc) 4.35 kB
<!DOCTYPE html> <html> <!-- Copyright 2006 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Closure Unit Tests - goog.structs.PriorityQueue</title> <script src="../base.js"></script> <script> goog.require('goog.structs'); goog.require('goog.structs.PriorityQueue'); goog.require('goog.testing.jsunit'); </script> </head> <body> <script> function getPriorityQueue() { var p = new goog.structs.PriorityQueue(); p.enqueue(0, 'a'); p.enqueue(1, 'b'); p.enqueue(2, 'c'); p.enqueue(3, 'd'); return p; } function getPriorityQueue2() { var p = new goog.structs.PriorityQueue(); p.insert(1, 'b'); p.insert(3, 'd'); p.insert(0, 'a'); p.insert(2, 'c'); return p; } function testGetCount1() { var p = getPriorityQueue(); assertEquals('count, should be 4', p.getCount(), 4); p.dequeue(); assertEquals('count, should be 3', p.getCount(), 3); } function testGetCount2() { var p = getPriorityQueue(); assertEquals('count, should be 4', p.getCount(), 4); p.dequeue(); assertEquals('count, should be 3', p.getCount(), 3); } function testGetCount3() { var p = getPriorityQueue(); p.dequeue(); p.dequeue(); p.dequeue(); p.dequeue(); assertEquals('count, should be 0', p.getCount(), 0); } function testKeys() { var p = getPriorityQueue(); var keys = p.getKeys(); for (var i = 0; i < 4; i++) { assertTrue('getKeys, key ' + i + ' found', goog.structs.contains(keys, i)); } assertEquals('getKeys, Should be 4 keys', goog.structs.getCount(keys), 4); } function testValues() { var p = getPriorityQueue(); var values = p.getValues(); assertTrue('getKeys, value "a" found', goog.structs.contains(values, 'a')); assertTrue('getKeys, value "b" found', goog.structs.contains(values, 'b')); assertTrue('getKeys, value "c" found', goog.structs.contains(values, 'c')); assertTrue('getKeys, value "d" found', goog.structs.contains(values, 'd')); assertEquals('getKeys, Should be 4 keys', goog.structs.getCount(values), 4); } function testClear() { var p = getPriorityQueue(); p.clear(); assertTrue('cleared so it should be empty', p.isEmpty()); } function testIsEmpty() { var p = getPriorityQueue(); assertFalse('4 values so should not be empty', p.isEmpty()); p.dequeue(); p.dequeue(); p.dequeue(); assertFalse('1 values so should not be empty', p.isEmpty()); p.dequeue(); assertTrue('0 values so should be empty', p.isEmpty()); } function testPeek1() { var p = getPriorityQueue(); assertEquals('peek, Should be "a"', p.peek(), 'a'); } function testPeek2() { var p = getPriorityQueue2(); assertEquals('peek, Should be "a"', p.peek(), 'a'); } function testPeek3() { var p = getPriorityQueue(); p.clear(); assertEquals('peek, Should be "a"', p.peek(), undefined); } function testDequeue1() { var p = getPriorityQueue(); assertEquals('dequeue, Should be "a"', p.dequeue(), 'a'); assertEquals('dequeue, Should be "b"', p.dequeue(), 'b'); assertEquals('dequeue, Should be "c"', p.dequeue(), 'c'); assertEquals('dequeue, Should be "d"', p.dequeue(), 'd'); } function testDequeue2() { var p = getPriorityQueue2(); assertEquals('dequeue, Should be "a"', p.dequeue(), 'a'); assertEquals('dequeue, Should be "b"', p.dequeue(), 'b'); assertEquals('dequeue, Should be "c"', p.dequeue(), 'c'); assertEquals('dequeue, Should be "d"', p.dequeue(), 'd'); } function testEnqueuePeek1() { var p = new goog.structs.PriorityQueue(); p.enqueue(3, 'd'); assertEquals('peak, Should be "d"', p.peek(), 'd'); p.enqueue(2, 'c'); assertEquals('peak, Should be "c"', p.peek(), 'c'); p.enqueue(1, 'b'); assertEquals('peak, Should be "b"', p.peek(), 'b'); p.enqueue(0, 'a'); assertEquals('peak, Should be "a"', p.peek(), 'a'); } function testEnqueuePeek2() { var p = new goog.structs.PriorityQueue(); p.enqueue(1, 'b'); assertEquals('peak, Should be "b"', p.peek(), 'b'); p.enqueue(3, 'd'); assertEquals('peak, Should be "b"', p.peek(), 'b'); p.enqueue(0, 'a'); assertEquals('peak, Should be "a"', p.peek(), 'a'); p.enqueue(2, 'c'); assertEquals('peak, Should be "a"', p.peek(), 'a'); } </script> </body> </html>