Merge branch 'master' into feature/task-functions
[poolifier.git] / tests / deque.test.js
index 8521047d1ef7edc8aecc5eb5483c556d61b355e9..73e54590b3956e91ba7b1c2ad39e636c3fa92a95 100644 (file)
@@ -8,20 +8,20 @@ describe('Deque test suite', () => {
     expect(deque.size).toBe(1)
     expect(deque.maxSize).toBe(1)
     expect(rtSize).toBe(deque.size)
-    expect(deque.head).toMatchObject({ value: 1 })
-    expect(deque.tail).toMatchObject({ value: 1 })
+    expect(deque.head).toMatchObject({ data: 1 })
+    expect(deque.tail).toMatchObject({ data: 1 })
     rtSize = deque.push(2)
     expect(deque.size).toBe(2)
     expect(deque.maxSize).toBe(2)
     expect(rtSize).toBe(deque.size)
-    expect(deque.head).toMatchObject({ value: 1 })
-    expect(deque.tail).toMatchObject({ value: 2 })
+    expect(deque.head).toMatchObject({ data: 1 })
+    expect(deque.tail).toMatchObject({ data: 2 })
     rtSize = deque.push(3)
     expect(deque.size).toBe(3)
     expect(deque.maxSize).toBe(3)
     expect(rtSize).toBe(deque.size)
-    expect(deque.head).toMatchObject({ value: 1 })
-    expect(deque.tail).toMatchObject({ value: 3 })
+    expect(deque.head).toMatchObject({ data: 1 })
+    expect(deque.tail).toMatchObject({ data: 3 })
   })
 
   it('Verify unshift() behavior', () => {
@@ -30,20 +30,20 @@ describe('Deque test suite', () => {
     expect(deque.size).toBe(1)
     expect(deque.maxSize).toBe(1)
     expect(rtSize).toBe(deque.size)
-    expect(deque.head).toMatchObject({ value: 1 })
-    expect(deque.tail).toMatchObject({ value: 1 })
+    expect(deque.head).toMatchObject({ data: 1 })
+    expect(deque.tail).toMatchObject({ data: 1 })
     rtSize = deque.unshift(2)
     expect(deque.size).toBe(2)
     expect(deque.maxSize).toBe(2)
     expect(rtSize).toBe(deque.size)
-    expect(deque.head).toMatchObject({ value: 2 })
-    expect(deque.tail).toMatchObject({ value: 1 })
+    expect(deque.head).toMatchObject({ data: 2 })
+    expect(deque.tail).toMatchObject({ data: 1 })
     rtSize = deque.unshift(3)
     expect(deque.size).toBe(3)
     expect(deque.maxSize).toBe(3)
     expect(rtSize).toBe(deque.size)
-    expect(deque.head).toMatchObject({ value: 3 })
-    expect(deque.tail).toMatchObject({ value: 1 })
+    expect(deque.head).toMatchObject({ data: 3 })
+    expect(deque.tail).toMatchObject({ data: 1 })
   })
 
   it('Verify pop() behavior', () => {
@@ -55,14 +55,14 @@ describe('Deque test suite', () => {
     expect(deque.size).toBe(2)
     expect(deque.maxSize).toBe(3)
     expect(rtItem).toBe(3)
-    expect(deque.head).toMatchObject({ value: 1 })
-    expect(deque.tail).toMatchObject({ value: 2 })
+    expect(deque.head).toMatchObject({ data: 1 })
+    expect(deque.tail).toMatchObject({ data: 2 })
     rtItem = deque.pop()
     expect(deque.size).toBe(1)
     expect(deque.maxSize).toBe(3)
     expect(rtItem).toBe(2)
-    expect(deque.head).toMatchObject({ value: 1 })
-    expect(deque.tail).toMatchObject({ value: 1 })
+    expect(deque.head).toMatchObject({ data: 1 })
+    expect(deque.tail).toMatchObject({ data: 1 })
     rtItem = deque.pop()
     expect(deque.size).toBe(0)
     expect(deque.maxSize).toBe(3)
@@ -80,14 +80,14 @@ describe('Deque test suite', () => {
     expect(deque.size).toBe(2)
     expect(deque.maxSize).toBe(3)
     expect(rtItem).toBe(1)
-    expect(deque.head).toMatchObject({ value: 2 })
-    expect(deque.tail).toMatchObject({ value: 3 })
+    expect(deque.head).toMatchObject({ data: 2 })
+    expect(deque.tail).toMatchObject({ data: 3 })
     rtItem = deque.shift()
     expect(deque.size).toBe(1)
     expect(deque.maxSize).toBe(3)
     expect(rtItem).toBe(2)
-    expect(deque.head).toMatchObject({ value: 3 })
-    expect(deque.tail).toMatchObject({ value: 3 })
+    expect(deque.head).toMatchObject({ data: 3 })
+    expect(deque.tail).toMatchObject({ data: 3 })
     rtItem = deque.shift()
     expect(deque.size).toBe(0)
     expect(deque.maxSize).toBe(3)
@@ -96,6 +96,26 @@ describe('Deque test suite', () => {
     expect(deque.tail).toBeUndefined()
   })
 
+  it('Verify peekFirst() behavior', () => {
+    const deque = new Deque()
+    deque.push(1)
+    deque.push(2)
+    deque.push(3)
+    expect(deque.size).toBe(3)
+    expect(deque.peekFirst()).toBe(1)
+    expect(deque.size).toBe(3)
+  })
+
+  it('Verify peekLast() behavior', () => {
+    const deque = new Deque()
+    deque.push(1)
+    deque.push(2)
+    deque.push(3)
+    expect(deque.size).toBe(3)
+    expect(deque.peekLast()).toBe(3)
+    expect(deque.size).toBe(3)
+  })
+
   it('Verify clear() behavior', () => {
     const deque = new Deque()
     deque.push(1)
@@ -103,8 +123,8 @@ describe('Deque test suite', () => {
     deque.push(3)
     expect(deque.size).toBe(3)
     expect(deque.maxSize).toBe(3)
-    expect(deque.head).toMatchObject({ value: 1 })
-    expect(deque.tail).toMatchObject({ value: 3 })
+    expect(deque.head).toMatchObject({ data: 1 })
+    expect(deque.tail).toMatchObject({ data: 3 })
     deque.clear()
     expect(deque.size).toBe(0)
     expect(deque.maxSize).toBe(0)