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
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>