Commit | Line | Data |
---|---|---|
bd8b441c JB |
1 | import { expect } from 'expect' |
2 | ||
3 | // eslint-disable-next-line n/no-missing-import, import/no-unresolved | |
4 | import { PriorityQueue } from '../lib/priority-queue.cjs' | |
5 | ||
6 | describe.skip('Priority queue test suite', () => { | |
7 | it('Verify enqueue() behavior', () => { | |
8 | const priorityQueue = new PriorityQueue() | |
9 | let rtSize = priorityQueue.enqueue(1) | |
10 | expect(priorityQueue.size).toBe(1) | |
11 | expect(priorityQueue.maxSize).toBe(1) | |
12 | expect(rtSize).toBe(priorityQueue.size) | |
13 | expect(priorityQueue.nodeArray).toStrictEqual([{ data: 1, priority: 0 }]) | |
14 | rtSize = priorityQueue.enqueue(2) | |
15 | expect(priorityQueue.size).toBe(2) | |
16 | expect(priorityQueue.maxSize).toBe(2) | |
17 | expect(rtSize).toBe(priorityQueue.size) | |
18 | expect(priorityQueue.nodeArray).toStrictEqual([ | |
19 | { data: 1, priority: 0 }, | |
20 | { data: 2, priority: 0 } | |
21 | ]) | |
22 | rtSize = priorityQueue.enqueue(3) | |
23 | expect(priorityQueue.size).toBe(3) | |
24 | expect(priorityQueue.maxSize).toBe(3) | |
25 | expect(rtSize).toBe(priorityQueue.size) | |
26 | expect(priorityQueue.nodeArray).toStrictEqual([ | |
27 | { data: 1, priority: 0 }, | |
28 | { data: 2, priority: 0 }, | |
29 | { data: 3, priority: 0 } | |
30 | ]) | |
31 | rtSize = priorityQueue.enqueue(3, -1) | |
32 | expect(priorityQueue.size).toBe(4) | |
33 | expect(priorityQueue.maxSize).toBe(4) | |
34 | expect(rtSize).toBe(priorityQueue.size) | |
35 | expect(priorityQueue.nodeArray).toStrictEqual([ | |
36 | { data: 3, priority: -1 }, | |
37 | { data: 1, priority: 0 }, | |
38 | { data: 2, priority: 0 }, | |
39 | { data: 3, priority: 0 } | |
40 | ]) | |
41 | rtSize = priorityQueue.enqueue(1, 1) | |
42 | expect(priorityQueue.size).toBe(5) | |
43 | expect(priorityQueue.maxSize).toBe(5) | |
44 | expect(rtSize).toBe(priorityQueue.size) | |
45 | expect(priorityQueue.nodeArray).toStrictEqual([ | |
46 | { data: 3, priority: -1 }, | |
47 | { data: 1, priority: 0 }, | |
48 | { data: 2, priority: 0 }, | |
49 | { data: 3, priority: 0 }, | |
50 | { data: 1, priority: 1 } | |
51 | ]) | |
52 | }) | |
53 | ||
54 | it('Verify dequeue() behavior', () => { | |
55 | const priorityQueue = new PriorityQueue() | |
56 | priorityQueue.enqueue(1) | |
57 | priorityQueue.enqueue(2, -1) | |
58 | priorityQueue.enqueue(3) | |
59 | let rtItem = priorityQueue.dequeue() | |
60 | expect(priorityQueue.size).toBe(2) | |
61 | expect(priorityQueue.maxSize).toBe(3) | |
62 | expect(rtItem).toBe(2) | |
63 | expect(priorityQueue.nodeArray).toStrictEqual([ | |
64 | { data: 1, priority: 0 }, | |
65 | { data: 3, priority: 0 } | |
66 | ]) | |
67 | rtItem = priorityQueue.dequeue() | |
68 | expect(priorityQueue.size).toBe(1) | |
69 | expect(priorityQueue.maxSize).toBe(3) | |
70 | expect(rtItem).toBe(1) | |
71 | expect(priorityQueue.nodeArray).toStrictEqual([{ data: 3, priority: 0 }]) | |
72 | rtItem = priorityQueue.dequeue() | |
73 | expect(priorityQueue.size).toBe(0) | |
74 | expect(priorityQueue.maxSize).toBe(3) | |
75 | expect(rtItem).toBe(3) | |
76 | expect(priorityQueue.nodeArray).toStrictEqual([]) | |
77 | }) | |
78 | ||
79 | it('Verify peekFirst() behavior', () => { | |
80 | const priorityQueue = new PriorityQueue() | |
81 | priorityQueue.enqueue(1) | |
82 | priorityQueue.enqueue(2) | |
83 | priorityQueue.enqueue(3) | |
84 | expect(priorityQueue.size).toBe(3) | |
85 | expect(priorityQueue.peekFirst()).toBe(1) | |
86 | expect(priorityQueue.size).toBe(3) | |
87 | }) | |
88 | ||
89 | it('Verify peekLast() behavior', () => { | |
90 | const priorityQueue = new PriorityQueue() | |
91 | priorityQueue.enqueue(1) | |
92 | priorityQueue.enqueue(2) | |
93 | priorityQueue.enqueue(3) | |
94 | expect(priorityQueue.size).toBe(3) | |
95 | expect(priorityQueue.peekLast()).toBe(3) | |
96 | expect(priorityQueue.size).toBe(3) | |
97 | }) | |
98 | ||
99 | it('Verify clear() behavior', () => { | |
100 | const priorityQueue = new PriorityQueue() | |
101 | priorityQueue.enqueue(1) | |
102 | priorityQueue.enqueue(2) | |
103 | priorityQueue.enqueue(3) | |
104 | expect(priorityQueue.size).toBe(3) | |
105 | expect(priorityQueue.maxSize).toBe(3) | |
106 | expect(priorityQueue.nodeArray).toStrictEqual([ | |
107 | { data: 1, priority: 0 }, | |
108 | { data: 2, priority: 0 }, | |
109 | { data: 3, priority: 0 } | |
110 | ]) | |
111 | priorityQueue.clear() | |
112 | expect(priorityQueue.size).toBe(0) | |
113 | expect(priorityQueue.maxSize).toBe(0) | |
114 | expect(priorityQueue.nodeArray).toStrictEqual([]) | |
115 | }) | |
116 | }) |