X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Ffixed-priority-queue.test.mjs;h=ddf002f0b2fcecd4091ed51a3ece546b347876be;hb=579aa5bd0da2971c57a8f26be4a425e78f5ad040;hp=4821d387c819e577e6994cd296a24b9110aa039f;hpb=f8d5d8fdf46b7182f5efa3503bb5172ec199fb45;p=poolifier.git diff --git a/tests/fixed-priority-queue.test.mjs b/tests/fixed-priority-queue.test.mjs index 4821d387..ddf002f0 100644 --- a/tests/fixed-priority-queue.test.mjs +++ b/tests/fixed-priority-queue.test.mjs @@ -5,10 +5,10 @@ import { FixedPriorityQueue } from '../lib/fixed-priority-queue.cjs' -describe.skip('Fixed Priority queue test suite', () => { +describe('Fixed priority queue test suite', () => { it('Verify constructor() behavior', () => { expect(() => new FixedPriorityQueue('')).toThrow( - new TypeError('Invalid fixed priority queue size: is not an integer') + new TypeError("Invalid fixed priority queue size: '' is not an integer") ) expect(() => new FixedPriorityQueue(-1)).toThrow( new RangeError('Invalid fixed priority queue size: -1 < 0') @@ -18,17 +18,18 @@ describe.skip('Fixed Priority queue test suite', () => { expect(fixedPriorityQueue.size).toBe(0) expect(fixedPriorityQueue.maxSize).toBe(0) expect(fixedPriorityQueue.nodeArray).toBeInstanceOf(Array) - expect(fixedPriorityQueue.nodeArray.length).toBe(defaultQueueSize) + expect(fixedPriorityQueue.capacity).toBe(defaultQueueSize) fixedPriorityQueue = new FixedPriorityQueue(2) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(0) expect(fixedPriorityQueue.maxSize).toBe(0) expect(fixedPriorityQueue.nodeArray).toBeInstanceOf(Array) - expect(fixedPriorityQueue.nodeArray.length).toBe(2) + expect(fixedPriorityQueue.capacity).toBe(2) }) it('Verify enqueue() behavior', () => { - const fixedPriorityQueue = new FixedPriorityQueue() + const queueSize = 5 + const fixedPriorityQueue = new FixedPriorityQueue(queueSize) let rtSize = fixedPriorityQueue.enqueue(1) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(1) @@ -37,6 +38,7 @@ describe.skip('Fixed Priority queue test suite', () => { expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 1, priority: 0 } ]) + expect(fixedPriorityQueue.capacity).toBe(queueSize) rtSize = fixedPriorityQueue.enqueue(2) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(2) @@ -46,6 +48,7 @@ describe.skip('Fixed Priority queue test suite', () => { { data: 1, priority: 0 }, { data: 2, priority: 0 } ]) + expect(fixedPriorityQueue.capacity).toBe(queueSize) rtSize = fixedPriorityQueue.enqueue(3) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(3) @@ -56,6 +59,7 @@ describe.skip('Fixed Priority queue test suite', () => { { data: 2, priority: 0 }, { data: 3, priority: 0 } ]) + expect(fixedPriorityQueue.capacity).toBe(queueSize) rtSize = fixedPriorityQueue.enqueue(3, -1) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(4) @@ -67,6 +71,7 @@ describe.skip('Fixed Priority queue test suite', () => { { data: 2, priority: 0 }, { data: 3, priority: 0 } ]) + expect(fixedPriorityQueue.capacity).toBe(queueSize) rtSize = fixedPriorityQueue.enqueue(1, 1) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(5) @@ -79,16 +84,22 @@ describe.skip('Fixed Priority queue test suite', () => { { data: 3, priority: 0 }, { data: 1, priority: 1 } ]) + expect(fixedPriorityQueue.capacity).toBe(queueSize) + expect(() => fixedPriorityQueue.enqueue(4)).toThrow( + new Error('Priority queue is full') + ) }) it('Verify dequeue() behavior', () => { - const fixedPriorityQueue = new FixedPriorityQueue() + const queueSize = 5 + const fixedPriorityQueue = new FixedPriorityQueue(queueSize) fixedPriorityQueue.enqueue(1) fixedPriorityQueue.enqueue(2, -1) fixedPriorityQueue.enqueue(3) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(3) expect(fixedPriorityQueue.maxSize).toBe(3) + expect(fixedPriorityQueue.capacity).toBe(queueSize) let rtItem = fixedPriorityQueue.dequeue() expect(fixedPriorityQueue.start).toBe(1) expect(fixedPriorityQueue.size).toBe(2) @@ -99,6 +110,7 @@ describe.skip('Fixed Priority queue test suite', () => { { data: 1, priority: 0 }, { data: 3, priority: 0 } ]) + expect(fixedPriorityQueue.capacity).toBe(queueSize) rtItem = fixedPriorityQueue.dequeue() expect(fixedPriorityQueue.start).toBe(2) expect(fixedPriorityQueue.size).toBe(1) @@ -109,6 +121,7 @@ describe.skip('Fixed Priority queue test suite', () => { { data: 1, priority: 0 }, { data: 3, priority: 0 } ]) + expect(fixedPriorityQueue.capacity).toBe(queueSize) rtItem = fixedPriorityQueue.dequeue() expect(fixedPriorityQueue.start).toBe(3) expect(fixedPriorityQueue.size).toBe(0) @@ -119,7 +132,18 @@ describe.skip('Fixed Priority queue test suite', () => { { data: 1, priority: 0 }, { data: 3, priority: 0 } ]) - expect(fixedPriorityQueue.dequeue()).toBe(undefined) + expect(fixedPriorityQueue.capacity).toBe(queueSize) + rtItem = fixedPriorityQueue.dequeue() + expect(fixedPriorityQueue.start).toBe(3) + expect(fixedPriorityQueue.size).toBe(0) + expect(fixedPriorityQueue.maxSize).toBe(3) + expect(rtItem).toBe(undefined) + expect(fixedPriorityQueue.nodeArray).toMatchObject([ + { data: 2, priority: -1 }, + { data: 1, priority: 0 }, + { data: 3, priority: 0 } + ]) + expect(fixedPriorityQueue.capacity).toBe(queueSize) }) it('Verify iterator behavior', () => { @@ -140,6 +164,26 @@ describe.skip('Fixed Priority queue test suite', () => { } }) + it('Verify empty() behavior', () => { + const fixedPriorityQueue = new FixedPriorityQueue() + expect(fixedPriorityQueue.empty()).toBe(true) + fixedPriorityQueue.enqueue(1) + expect(fixedPriorityQueue.empty()).toBe(false) + fixedPriorityQueue.dequeue() + expect(fixedPriorityQueue.empty()).toBe(true) + }) + + it('Verify full() behavior', () => { + const fixedPriorityQueue = new FixedPriorityQueue(2) + expect(fixedPriorityQueue.full()).toBe(false) + fixedPriorityQueue.enqueue(1) + expect(fixedPriorityQueue.full()).toBe(false) + fixedPriorityQueue.enqueue(2) + expect(fixedPriorityQueue.full()).toBe(true) + fixedPriorityQueue.dequeue() + expect(fixedPriorityQueue.full()).toBe(false) + }) + it('Verify clear() behavior', () => { const fixedPriorityQueue = new FixedPriorityQueue() fixedPriorityQueue.start = 1