UNPKG

malwoden

Version:

![alt text](./coverage/badge-lines.svg) ![alt text](./coverage/badge-statements.svg) ![alt text](./coverage/badge-functions.svg) ![alt text](./coverage/badge-branches.svg)

58 lines 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var priority_queue_array_1 = require("./priority-queue-array"); describe("PriorityQueue", function () { it("Can take in numbers", function () { var q = new priority_queue_array_1.ArrayPriorityQueue(function (n) { return n; }); q.insert(1000); q.insert(100); q.insert(10); q.insert(1); expect(q.pop()).toEqual(1); expect(q.pop()).toEqual(10); expect(q.pop()).toEqual(100); expect(q.pop()).toEqual(1000); }); it("Can peek at the top entry", function () { var q = new priority_queue_array_1.ArrayPriorityQueue(function (n) { return n; }); q.insert(100); q.insert(50); q.insert(500); expect(q.peek()).toEqual(50); expect(q.peek()).toEqual(50); expect(q.peek()).toEqual(50); }); it("Will return undefined when peeking at an empty queue", function () { var q = new priority_queue_array_1.ArrayPriorityQueue(function (n) { return n; }); expect(q.peek()).toEqual(undefined); }); it("Will return undefined when popping an empty queue", function () { var q = new priority_queue_array_1.ArrayPriorityQueue(function (n) { return n; }); expect(q.pop()).toEqual(undefined); }); it("Can take in objects", function () { var q = new priority_queue_array_1.ArrayPriorityQueue(function (v) { return v.x; }); q.insert({ x: 100, y: 10 }); q.insert({ x: 10, y: 10 }); q.insert({ x: 1, y: 10 }); q.insert({ x: -1, y: 10 }); q.insert({ x: -10, y: 10 }); q.insert({ x: -100, y: 10 }); expect(q.pop()).toEqual({ x: -100, y: 10 }); expect(q.pop()).toEqual({ x: -10, y: 10 }); expect(q.pop()).toEqual({ x: -1, y: 10 }); expect(q.pop()).toEqual({ x: 1, y: 10 }); expect(q.pop()).toEqual({ x: 10, y: 10 }); expect(q.pop()).toEqual({ x: 100, y: 10 }); }); it("Will prioritize object inserted first", function () { var q = new priority_queue_array_1.ArrayPriorityQueue(function (v) { return v.x; }); for (var y = 0; y < 100; y++) { q.insert({ x: 0, y: y }); } for (var y = 0; y < 100; y++) { expect(q.pop()).toEqual({ x: 0, y: y }); } }); }); //# sourceMappingURL=priority-queue-array.spec.js.map