Commit | Line | Data |
---|---|---|
4f9327bf JB |
1 | /* eslint-disable @typescript-eslint/no-unsafe-member-access */ |
2 | import { expect } from 'expect'; | |
3 | ||
4 | import { Queue } from '../../src/utils/Queue'; | |
5 | ||
6 | describe('Queue test suite', () => { | |
7 | it('Verify enqueue() behavior', () => { | |
8 | const queue = new Queue(); | |
9 | let rtSize = queue.enqueue(1); | |
10 | expect(queue.size).toBe(1); | |
11 | expect(rtSize).toBe(queue.size); | |
12 | expect((queue as any).head).toBe(0); | |
13 | expect((queue as any).tail).toBe(1); | |
14 | expect((queue as any).items).toStrictEqual({ 0: 1 }); | |
15 | rtSize = queue.enqueue(2); | |
16 | expect(queue.size).toBe(2); | |
17 | expect(rtSize).toBe(queue.size); | |
18 | expect((queue as any).head).toBe(0); | |
19 | expect((queue as any).tail).toBe(2); | |
20 | expect((queue as any).items).toStrictEqual({ 0: 1, 1: 2 }); | |
21 | rtSize = queue.enqueue(3); | |
22 | expect(queue.size).toBe(3); | |
23 | expect(rtSize).toBe(queue.size); | |
24 | expect((queue as any).head).toBe(0); | |
25 | expect((queue as any).tail).toBe(3); | |
26 | expect((queue as any).items).toStrictEqual({ 0: 1, 1: 2, 2: 3 }); | |
27 | }); | |
28 | ||
29 | it('Verify dequeue() behavior', () => { | |
30 | const queue = new Queue(); | |
31 | queue.enqueue(1); | |
32 | queue.enqueue(2); | |
33 | queue.enqueue(3); | |
34 | let rtItem = queue.dequeue(); | |
35 | expect(queue.size).toBe(2); | |
36 | expect(rtItem).toBe(1); | |
37 | expect((queue as any).head).toBe(1); | |
38 | expect((queue as any).tail).toBe(3); | |
39 | expect((queue as any).items).toStrictEqual({ 1: 2, 2: 3 }); | |
40 | rtItem = queue.dequeue(); | |
41 | expect(queue.size).toBe(1); | |
42 | expect(rtItem).toBe(2); | |
43 | expect((queue as any).head).toBe(2); | |
44 | expect((queue as any).tail).toBe(3); | |
45 | expect((queue as any).items).toStrictEqual({ 2: 3 }); | |
46 | rtItem = queue.dequeue(); | |
47 | expect(queue.size).toBe(0); | |
48 | expect(rtItem).toBe(3); | |
49 | expect((queue as any).head).toBe(0); | |
50 | expect((queue as any).tail).toBe(0); | |
51 | expect((queue as any).items).toStrictEqual({}); | |
52 | }); | |
53 | }); |