From b865d9856cf15e788451b2e3702f04c9a8a25030 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 9 May 2023 10:55:43 +0200 Subject: [PATCH] test: add queue tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- tests/queue.test.js | 51 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/queue.test.js diff --git a/tests/queue.test.js b/tests/queue.test.js new file mode 100644 index 00000000..93211106 --- /dev/null +++ b/tests/queue.test.js @@ -0,0 +1,51 @@ +const { expect } = require('expect') +const { Queue } = require('../lib/queue') + +describe('Queue test suite', () => { + it('Verify enqueue() behavior', () => { + const queue = new Queue() + let rtSize = queue.enqueue(1) + expect(queue.size).toBe(1) + expect(rtSize).toBe(queue.size) + expect(queue.head).toBe(0) + expect(queue.tail).toBe(1) + expect(queue.items).toStrictEqual({ 0: 1 }) + rtSize = queue.enqueue(2) + expect(queue.size).toBe(2) + expect(rtSize).toBe(queue.size) + expect(queue.head).toBe(0) + expect(queue.tail).toBe(2) + expect(queue.items).toStrictEqual({ 0: 1, 1: 2 }) + rtSize = queue.enqueue(3) + expect(queue.size).toBe(3) + expect(rtSize).toBe(queue.size) + expect(queue.head).toBe(0) + expect(queue.tail).toBe(3) + expect(queue.items).toStrictEqual({ 0: 1, 1: 2, 2: 3 }) + }) + + it('Verify dequeue() behavior', () => { + const queue = new Queue() + queue.enqueue(1) + queue.enqueue(2) + queue.enqueue(3) + let rtItem = queue.dequeue() + expect(queue.size).toBe(2) + expect(rtItem).toBe(1) + expect(queue.head).toBe(1) + expect(queue.tail).toBe(3) + expect(queue.items).toStrictEqual({ 1: 2, 2: 3 }) + rtItem = queue.dequeue() + expect(queue.size).toBe(1) + expect(rtItem).toBe(2) + expect(queue.head).toBe(2) + expect(queue.tail).toBe(3) + expect(queue.items).toStrictEqual({ 2: 3 }) + rtItem = queue.dequeue() + expect(queue.size).toBe(0) + expect(rtItem).toBe(3) + expect(queue.head).toBe(0) + expect(queue.tail).toBe(0) + expect(queue.items).toStrictEqual({}) + }) +}) -- 2.34.1