-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcustom-compare-tests.js
More file actions
39 lines (37 loc) · 1.4 KB
/
custom-compare-tests.js
File metadata and controls
39 lines (37 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'use strict';
module.exports.run = function (test, Heap) {
test('should give a min heap given a non-reverse customCompare', function (t) {
var heap = new Heap(function (a, b) {
return a.key - b.key;
});
var node3 = heap.insert(13, null);
var node4 = heap.insert(26, null);
var node2 = heap.insert(3, null);
var node1 = heap.insert(-6, null);
var node5 = heap.insert(27, null);
t.is(heap.size(), 5);
t.deepEqual(heap.extractMinimum().key, node1.key);
t.deepEqual(heap.extractMinimum().key, node2.key);
t.deepEqual(heap.extractMinimum().key, node3.key);
t.deepEqual(heap.extractMinimum().key, node4.key);
t.deepEqual(heap.extractMinimum().key, node5.key);
t.true(heap.isEmpty());
});
test('should give a max heap given a reverse customCompare', function (t) {
var heap = new Heap(function (a, b) {
return b.key - a.key;
});
var node3 = heap.insert(13, null);
var node4 = heap.insert(26, null);
var node2 = heap.insert(3, null);
var node1 = heap.insert(-6, null);
var node5 = heap.insert(27, null);
t.is(heap.size(), 5);
t.deepEqual(heap.extractMinimum().key, node5.key);
t.deepEqual(heap.extractMinimum().key, node4.key);
t.deepEqual(heap.extractMinimum().key, node3.key);
t.deepEqual(heap.extractMinimum().key, node2.key);
t.deepEqual(heap.extractMinimum().key, node1.key);
t.true(heap.isEmpty());
});
};