import "reflect-metadata"; import { describe, expect, it } from "vitest"; import { Queue } from "@spt-aki/utils/collections/queue/Queue"; describe("LinkedList", () => { describe("enqueue", () => { const queue = new Queue(); queue.enqueue(420); queue.enqueue(69); queue.enqueue(8008135); queue.enqueue(1337); it("adds elements to the end of the queue", () => { expect(queue.peek()).toEqual(420); expect(queue.length).toEqual(4); }); }); describe("enqueueAll", () => { const queue = new Queue(); queue.enqueueAll([420, 69, 8008135, 1337]); it("iterates the array and adds each element to the end of the queue", () => { expect(queue.peek()).toEqual(420); expect(queue.length).toEqual(4); }); }); describe("dequeue", () => { const queue = new Queue(); queue.enqueueAll([420, 69, 8008135, 1337]); it("removes the first element and return it's value", () => { expect(queue.dequeue()).toEqual(420); expect(queue.peek()).toEqual(69); expect(queue.length).toEqual(3); expect(queue.dequeue()).toEqual(69); expect(queue.peek()).toEqual(8008135); expect(queue.length).toEqual(2); expect(queue.dequeue()).toEqual(8008135); expect(queue.peek()).toEqual(1337); expect(queue.length).toEqual(1); expect(queue.dequeue()).toEqual(1337); expect(queue.peek()).toEqual(undefined); expect(queue.length).toEqual(0); expect(queue.dequeue()).toEqual(undefined); expect(queue.peek()).toEqual(undefined); expect(queue.length).toEqual(0); }); }); });