build(deps): bump poolifier
[poolifier.git] / tests / fixed-priority-queue.test.mjs
index ddf002f0b2fcecd4091ed51a3ece546b347876be..99dcb00120a60c4b09a3a9be595919f902686a13 100644 (file)
@@ -16,24 +16,23 @@ 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 }
@@ -42,7 +41,6 @@ describe('Fixed priority queue test suite', () => {
     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 },
@@ -52,7 +50,6 @@ describe('Fixed priority queue test suite', () => {
     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 },
@@ -63,7 +60,6 @@ describe('Fixed priority queue test suite', () => {
     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 },
@@ -75,7 +71,6 @@ describe('Fixed priority queue test suite', () => {
     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 },
@@ -90,20 +85,29 @@ 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 },
@@ -114,7 +118,6 @@ describe('Fixed priority queue test suite', () => {
     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 },
@@ -125,7 +128,6 @@ describe('Fixed priority queue test suite', () => {
     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 },
@@ -136,7 +138,6 @@ describe('Fixed priority queue test suite', () => {
     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 },
@@ -188,7 +189,6 @@ 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 }
@@ -196,7 +196,6 @@ describe('Fixed priority queue test suite', () => {
     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 }