fix: fix tasks usage accounting initializer
[poolifier.git] / tests / queue.test.js
index 6451b732e2c71d9753e1344f5b3683ed70f2f205..f4b83d575a27abb9cd8ae3c9578727b6e703b0d3 100644 (file)
@@ -7,24 +7,21 @@ describe('Queue test suite', () => {
     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.max).toBe(1)
-    expect(queue.items).toStrictEqual({ 0: 1 })
+    expect(queue.offset).toBe(0)
+    expect(queue.maxSize).toBe(1)
+    expect(queue.items).toStrictEqual([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.max).toBe(2)
-    expect(queue.items).toStrictEqual({ 0: 1, 1: 2 })
+    expect(queue.offset).toBe(0)
+    expect(queue.maxSize).toBe(2)
+    expect(queue.items).toStrictEqual([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.max).toBe(3)
-    expect(queue.items).toStrictEqual({ 0: 1, 1: 2, 2: 3 })
+    expect(queue.offset).toBe(0)
+    expect(queue.maxSize).toBe(3)
+    expect(queue.items).toStrictEqual([1, 2, 3])
   })
 
   it('Verify dequeue() behavior', () => {
@@ -35,20 +32,46 @@ describe('Queue test suite', () => {
     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 })
+    expect(queue.offset).toBe(1)
+    expect(queue.maxSize).toBe(3)
+    expect(queue.items).toStrictEqual([1, 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 })
+    expect(queue.offset).toBe(0)
+    expect(queue.maxSize).toBe(3)
+    expect(queue.items).toStrictEqual([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({})
+    expect(queue.offset).toBe(0)
+    expect(queue.maxSize).toBe(3)
+    expect(queue.items).toStrictEqual([])
+  })
+
+  it('Verify clear() behavior', () => {
+    const queue = new Queue()
+    queue.enqueue(1)
+    queue.enqueue(2)
+    queue.enqueue(3)
+    expect(queue.size).toBe(3)
+    expect(queue.maxSize).toBe(3)
+    queue.clear()
+    expect(queue.size).toBe(0)
+    expect(queue.maxSize).toBe(0)
+    expect(queue.items).toStrictEqual([])
+    expect(queue.offset).toBe(0)
+  })
+
+  it('Verify iterator behavior', () => {
+    const queue = new Queue()
+    queue.enqueue(1)
+    queue.enqueue(2)
+    queue.enqueue(3)
+    let i = 1
+    for (const item of queue) {
+      expect(item).toBe(i)
+      ++i
+    }
   })
 })