X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Ffixed-priority-queue.test.mjs;h=40b5564313b6dadedbe0d7cc1520ae0b6454ad02;hb=refs%2Fheads%2Fmaster;hp=ddf002f0b2fcecd4091ed51a3ece546b347876be;hpb=9df282a07ef35012409d7d08207e6df983a7e905;p=poolifier.git diff --git a/tests/fixed-priority-queue.test.mjs b/tests/fixed-priority-queue.test.mjs index ddf002f0..40b55643 100644 --- a/tests/fixed-priority-queue.test.mjs +++ b/tests/fixed-priority-queue.test.mjs @@ -2,7 +2,7 @@ import { expect } from 'expect' import { defaultQueueSize, - FixedPriorityQueue + FixedPriorityQueue, } from '../lib/fixed-priority-queue.cjs' describe('Fixed priority queue test suite', () => { @@ -16,73 +16,68 @@ describe('Fixed priority queue test suite', () => { let fixedPriorityQueue = new FixedPriorityQueue() expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(0) - expect(fixedPriorityQueue.maxSize).toBe(0) expect(fixedPriorityQueue.nodeArray).toBeInstanceOf(Array) expect(fixedPriorityQueue.capacity).toBe(defaultQueueSize) - fixedPriorityQueue = new FixedPriorityQueue(2) + expect(fixedPriorityQueue.enablePriority).toBe(false) + fixedPriorityQueue = new FixedPriorityQueue(2, true) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(0) - expect(fixedPriorityQueue.maxSize).toBe(0) expect(fixedPriorityQueue.nodeArray).toBeInstanceOf(Array) expect(fixedPriorityQueue.capacity).toBe(2) + expect(fixedPriorityQueue.enablePriority).toBe(true) }) it('Verify enqueue() behavior', () => { const queueSize = 5 - const fixedPriorityQueue = new FixedPriorityQueue(queueSize) + const fixedPriorityQueue = new FixedPriorityQueue(queueSize, true) let rtSize = fixedPriorityQueue.enqueue(1) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(1) - expect(fixedPriorityQueue.maxSize).toBe(1) expect(rtSize).toBe(fixedPriorityQueue.size) expect(fixedPriorityQueue.nodeArray).toMatchObject([ - { data: 1, priority: 0 } + { data: 1, priority: 0 }, ]) expect(fixedPriorityQueue.capacity).toBe(queueSize) rtSize = fixedPriorityQueue.enqueue(2) expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(2) - expect(fixedPriorityQueue.maxSize).toBe(2) expect(rtSize).toBe(fixedPriorityQueue.size) expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 1, priority: 0 }, - { data: 2, 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) - expect(fixedPriorityQueue.maxSize).toBe(3) expect(rtSize).toBe(fixedPriorityQueue.size) expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 1, priority: 0 }, { data: 2, priority: 0 }, - { data: 3, 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) - expect(fixedPriorityQueue.maxSize).toBe(4) expect(rtSize).toBe(fixedPriorityQueue.size) expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 3, priority: -1 }, { data: 1, priority: 0 }, { data: 2, priority: 0 }, - { data: 3, 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) - expect(fixedPriorityQueue.maxSize).toBe(5) expect(rtSize).toBe(fixedPriorityQueue.size) expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 3, priority: -1 }, { data: 1, priority: 0 }, { data: 2, priority: 0 }, { data: 3, priority: 0 }, - { data: 1, priority: 1 } + { data: 1, priority: 1 }, ]) expect(fixedPriorityQueue.capacity).toBe(queueSize) expect(() => fixedPriorityQueue.enqueue(4)).toThrow( @@ -90,58 +85,64 @@ describe('Fixed priority queue test suite', () => { ) }) + it('Verify get() behavior', () => { + const fixedPriorityQueue = new FixedPriorityQueue(defaultQueueSize, true) + fixedPriorityQueue.enqueue(1) + fixedPriorityQueue.enqueue(2, -1) + fixedPriorityQueue.enqueue(3) + expect(fixedPriorityQueue.get(0)).toBe(2) + expect(fixedPriorityQueue.get(1)).toBe(1) + expect(fixedPriorityQueue.get(2)).toBe(3) + expect(fixedPriorityQueue.get(3)).toBe(undefined) + }) + it('Verify dequeue() behavior', () => { const queueSize = 5 - const fixedPriorityQueue = new FixedPriorityQueue(queueSize) + const fixedPriorityQueue = new FixedPriorityQueue(queueSize, true) 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) - expect(fixedPriorityQueue.maxSize).toBe(3) expect(rtItem).toBe(2) expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 2, priority: -1 }, { data: 1, priority: 0 }, - { data: 3, priority: 0 } + { data: 3, priority: 0 }, ]) expect(fixedPriorityQueue.capacity).toBe(queueSize) rtItem = fixedPriorityQueue.dequeue() expect(fixedPriorityQueue.start).toBe(2) expect(fixedPriorityQueue.size).toBe(1) - expect(fixedPriorityQueue.maxSize).toBe(3) expect(rtItem).toBe(1) expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 2, priority: -1 }, { data: 1, priority: 0 }, - { data: 3, priority: 0 } + { data: 3, priority: 0 }, ]) 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(3) expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 2, priority: -1 }, { data: 1, priority: 0 }, - { data: 3, priority: 0 } + { data: 3, priority: 0 }, ]) 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 } + { data: 3, priority: 0 }, ]) expect(fixedPriorityQueue.capacity).toBe(queueSize) }) @@ -188,18 +189,16 @@ describe('Fixed priority queue test suite', () => { const fixedPriorityQueue = new FixedPriorityQueue() fixedPriorityQueue.start = 1 fixedPriorityQueue.size = 2 - fixedPriorityQueue.maxSize = 2 fixedPriorityQueue.nodeArray = [ { data: 2, priority: 0 }, - { data: 3, priority: 0 } + { data: 3, priority: 0 }, ] fixedPriorityQueue.clear() expect(fixedPriorityQueue.start).toBe(0) expect(fixedPriorityQueue.size).toBe(0) - expect(fixedPriorityQueue.maxSize).toBe(0) expect(fixedPriorityQueue.nodeArray).toMatchObject([ { data: 2, priority: 0 }, - { data: 3, priority: 0 } + { data: 3, priority: 0 }, ]) }) })