data-structure-typed 1.39.1 → 1.39.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +10 -10
  3. package/dist/cjs/data-structures/binary-tree/avl-tree.js +4 -4
  4. package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
  5. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +58 -107
  6. package/dist/cjs/data-structures/binary-tree/binary-tree.js +65 -27
  7. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  8. package/dist/cjs/data-structures/binary-tree/bst.d.ts +22 -22
  9. package/dist/cjs/data-structures/binary-tree/bst.js +12 -12
  10. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  11. package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +3 -3
  12. package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
  13. package/dist/cjs/data-structures/binary-tree/tree-multiset.d.ts +14 -14
  14. package/dist/cjs/data-structures/binary-tree/tree-multiset.js +7 -7
  15. package/dist/cjs/data-structures/binary-tree/tree-multiset.js.map +1 -1
  16. package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +46 -28
  17. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +59 -49
  18. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  19. package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +75 -7
  20. package/dist/cjs/data-structures/linked-list/singly-linked-list.js +110 -9
  21. package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
  22. package/dist/cjs/data-structures/queue/deque.d.ts +20 -20
  23. package/dist/cjs/data-structures/queue/deque.js +22 -22
  24. package/dist/cjs/data-structures/queue/deque.js.map +1 -1
  25. package/dist/cjs/data-structures/queue/queue.d.ts +3 -3
  26. package/dist/cjs/data-structures/queue/queue.js +3 -3
  27. package/dist/cjs/data-structures/queue/queue.js.map +1 -1
  28. package/dist/cjs/interfaces/binary-tree.d.ts +4 -4
  29. package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
  30. package/dist/cjs/types/data-structures/binary-tree/bst.d.ts +2 -2
  31. package/dist/cjs/types/helpers.d.ts +1 -1
  32. package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +10 -10
  33. package/dist/mjs/data-structures/binary-tree/avl-tree.js +4 -4
  34. package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +58 -107
  35. package/dist/mjs/data-structures/binary-tree/binary-tree.js +65 -27
  36. package/dist/mjs/data-structures/binary-tree/bst.d.ts +22 -22
  37. package/dist/mjs/data-structures/binary-tree/bst.js +12 -12
  38. package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +3 -3
  39. package/dist/mjs/data-structures/binary-tree/tree-multiset.d.ts +14 -14
  40. package/dist/mjs/data-structures/binary-tree/tree-multiset.js +7 -7
  41. package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +46 -28
  42. package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +59 -49
  43. package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +75 -7
  44. package/dist/mjs/data-structures/linked-list/singly-linked-list.js +110 -9
  45. package/dist/mjs/data-structures/queue/deque.d.ts +20 -20
  46. package/dist/mjs/data-structures/queue/deque.js +22 -22
  47. package/dist/mjs/data-structures/queue/queue.d.ts +3 -3
  48. package/dist/mjs/data-structures/queue/queue.js +3 -3
  49. package/dist/mjs/interfaces/binary-tree.d.ts +4 -4
  50. package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +1 -1
  51. package/dist/mjs/types/data-structures/binary-tree/bst.d.ts +2 -2
  52. package/dist/mjs/types/helpers.d.ts +1 -1
  53. package/dist/umd/data-structure-typed.min.js +1 -1
  54. package/dist/umd/data-structure-typed.min.js.map +1 -1
  55. package/package.json +5 -5
  56. package/src/data-structures/binary-tree/avl-tree.ts +10 -10
  57. package/src/data-structures/binary-tree/binary-tree.ts +165 -53
  58. package/src/data-structures/binary-tree/bst.ts +29 -31
  59. package/src/data-structures/binary-tree/rb-tree.ts +5 -5
  60. package/src/data-structures/binary-tree/tree-multiset.ts +14 -14
  61. package/src/data-structures/linked-list/doubly-linked-list.ts +62 -56
  62. package/src/data-structures/linked-list/singly-linked-list.ts +118 -13
  63. package/src/data-structures/queue/deque.ts +22 -22
  64. package/src/data-structures/queue/queue.ts +3 -3
  65. package/src/interfaces/binary-tree.ts +4 -4
  66. package/src/types/data-structures/binary-tree/binary-tree.ts +1 -1
  67. package/src/types/data-structures/binary-tree/bst.ts +2 -2
  68. package/src/types/helpers.ts +1 -1
  69. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +33 -7
  70. package/test/unit/data-structures/hash/coordinate-map.test.ts +20 -0
  71. package/test/unit/data-structures/hash/coordinate-set.test.ts +25 -0
  72. package/test/unit/data-structures/hash/hash-table.test.ts +3 -1
  73. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +65 -6
  74. package/test/unit/data-structures/linked-list/linked-list.test.ts +2 -2
  75. package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +57 -13
  76. package/test/unit/data-structures/queue/deque.test.ts +43 -43
  77. package/test/unit/data-structures/queue/queue.test.ts +7 -7
@@ -1,6 +1,15 @@
1
- import {SinglyLinkedList} from '../../../../src';
1
+ import {SinglyLinkedList, SinglyLinkedListNode} from '../../../../src';
2
2
  import {bigO, magnitude} from '../../../utils';
3
3
 
4
+ describe('SinglyLinkedListNode', () => {
5
+ it('should SinglyLinkedList', () => {
6
+ const node1 = new SinglyLinkedListNode<number>(2);
7
+ expect(node1.val).toBe(2);
8
+ node1.val = 1;
9
+ expect(node1.val).toBe(1);
10
+ });
11
+ });
12
+
4
13
  describe('SinglyLinkedList Operation Test', () => {
5
14
  let list: SinglyLinkedList<number>;
6
15
  let objectList: SinglyLinkedList<{keyA: number}>;
@@ -21,8 +30,10 @@ describe('SinglyLinkedList Operation Test', () => {
21
30
  it('should delete and return the last element of the list', () => {
22
31
  list.push(1);
23
32
  list.push(2);
33
+ list.push(3);
24
34
  const popped = list.pop();
25
- expect(popped).toBe(2);
35
+ expect(popped).toBe(3);
36
+ expect(list.popLast()).toBe(2);
26
37
  expect(list.toArray()).toEqual([1]);
27
38
  });
28
39
 
@@ -36,9 +47,11 @@ describe('SinglyLinkedList Operation Test', () => {
36
47
  it('should delete and return the first element of the list', () => {
37
48
  list.push(1);
38
49
  list.push(2);
50
+ list.push(3);
39
51
  const shifted = list.shift();
40
52
  expect(shifted).toBe(1);
41
- expect(list.toArray()).toEqual([2]);
53
+ expect(list.popFirst()).toBe(2);
54
+ expect(list.toArray()).toEqual([3]);
42
55
  });
43
56
 
44
57
  it('should return undefined if the list is empty', () => {
@@ -50,7 +63,7 @@ describe('SinglyLinkedList Operation Test', () => {
50
63
  describe('unshift', () => {
51
64
  it('should add elements to the beginning of the list', () => {
52
65
  list.unshift(1);
53
- list.unshift(2);
66
+ list.addFirst(2);
54
67
  expect(list.toArray()).toEqual([2, 1]);
55
68
  });
56
69
  });
@@ -62,6 +75,7 @@ describe('SinglyLinkedList Operation Test', () => {
62
75
  list.push(3);
63
76
  const element = list.getAt(1);
64
77
  expect(element).toBe(2);
78
+ expect(list.getNodeAt(2)?.val).toBe(3);
65
79
  });
66
80
 
67
81
  it('should return undefined for an out-of-bounds index', () => {
@@ -113,9 +127,14 @@ describe('SinglyLinkedList Operation Test', () => {
113
127
  list.push(1);
114
128
  list.push(2);
115
129
  list.push(3);
116
- const removed = list.delete(2);
117
- expect(removed).toBe(true);
118
- expect(list.toArray()).toEqual([1, 3]);
130
+ list.push(4);
131
+ list.push(5);
132
+ expect(list.delete(2)).toBe(true);
133
+ expect(list.toArray()).toEqual([1, 3, 4, 5]);
134
+ expect(list.delete(1)).toBe(true);
135
+ expect(list.toArray()).toEqual([3, 4, 5]);
136
+ expect(list.delete(5)).toBe(true);
137
+ expect(list.toArray()).toEqual([3, 4]);
119
138
  });
120
139
 
121
140
  it('should return false if the value is not found', () => {
@@ -362,8 +381,8 @@ describe('SinglyLinkedList Operation Test', () => {
362
381
  const insertSuccess = objectList.insertBefore(obj2, newObj);
363
382
  expect(insertSuccess).toBe(true);
364
383
 
365
- const findNode = objectList.findNode(newObj); // Use newObj instead of obj2
366
- expect(findNode?.val).toEqual(newObj);
384
+ const getNode = objectList.getNode(newObj); // Use newObj instead of obj2
385
+ expect(getNode?.val).toEqual(newObj);
367
386
 
368
387
  const deleted = objectList.delete(newObj); // Use newObj instead of obj2
369
388
  expect(deleted).toBe(true);
@@ -427,8 +446,6 @@ describe('SinglyLinkedList', () => {
427
446
  expect(list.length).toBe(1);
428
447
  });
429
448
 
430
- // Add more test cases for other methods like shift, unshift, getAt, deleteAt, and more.
431
-
432
449
  it('should reverse the list', () => {
433
450
  list.push(1);
434
451
  list.push(2);
@@ -439,13 +456,40 @@ describe('SinglyLinkedList', () => {
439
456
  // Add more assertions for reversed order.
440
457
  });
441
458
 
442
- // Add more test cases for other methods like find, indexOf, and more.
443
-
444
459
  it('should convert the list to an array', () => {
445
460
  list.push(1);
446
461
  list.push(2);
447
462
  list.push(3);
448
463
  const array = list.toArray();
449
464
  expect(array).toEqual([1, 2, 3]);
465
+ // @ts-ignore
466
+ expect([...list]).toEqual([1, 2, 3]);
467
+ });
468
+
469
+ it('should filter the list', () => {
470
+ list.push(1);
471
+ list.push(2);
472
+ list.push(3);
473
+ expect(list.filter(val => val !== 2).toArray()).toEqual([1, 3]);
474
+ });
475
+
476
+ it('should forEach the list', () => {
477
+ list.push(1);
478
+ list.push(2);
479
+ list.push(3);
480
+ list.forEach(val => val++);
481
+ expect(list.toArray()).toEqual([1, 2, 3]);
482
+ });
483
+
484
+ it('should map the list', () => {
485
+ list.addLast(1);
486
+ list.push(2);
487
+ list.push(3);
488
+ expect(list.map(val => val * 2).toArray()).toEqual([2, 4, 6]);
489
+ });
490
+
491
+ it('should reduce the list', () => {
492
+ const list1 = SinglyLinkedList.fromArray([1, 2, 3]);
493
+ expect(list1.reduce((acc, val) => acc + val, 0)).toEqual(6);
450
494
  });
451
495
  });
@@ -15,20 +15,20 @@ describe('Deque Tests', () => {
15
15
  it('should add elements at the beginning and end', () => {
16
16
  deque.addFirst(1);
17
17
  deque.addLast(2);
18
- expect(deque.peekFirst()).toBe(1);
19
- expect(deque.peekLast()).toBe(2);
18
+ expect(deque.getFirst()).toBe(1);
19
+ expect(deque.getLast()).toBe(2);
20
20
  });
21
21
 
22
22
  it('should delete elements from the beginning and end', () => {
23
23
  deque.addFirst(1);
24
24
  deque.addLast(2);
25
- deque.pollFirst();
26
- deque.pollLast();
25
+ deque.popFirst();
26
+ deque.popLast();
27
27
  expect(deque.isEmpty()).toBe(true);
28
28
  });
29
29
 
30
30
  it('should handle edge case when removing from an empty deque', () => {
31
- const result = deque.pollFirst();
31
+ const result = deque.popFirst();
32
32
  expect(result).toBeUndefined();
33
33
  });
34
34
 
@@ -40,18 +40,18 @@ describe('Deque Tests', () => {
40
40
 
41
41
  it('should handle adding and removing elements alternately', () => {
42
42
  deque.addFirst(1);
43
- expect(deque.pollFirst()).toBe(1);
43
+ expect(deque.popFirst()).toBe(1);
44
44
  deque.addLast(2);
45
- expect(deque.pollLast()).toBe(2);
45
+ expect(deque.popLast()).toBe(2);
46
46
  expect(deque.isEmpty()).toBe(true);
47
47
  });
48
48
 
49
49
  it('should handle adding and removing elements in a cyclic manner', () => {
50
50
  deque.addFirst(1);
51
51
  deque.addLast(2);
52
- expect(deque.pollFirst()).toBe(1);
52
+ expect(deque.popFirst()).toBe(1);
53
53
  deque.addFirst(3);
54
- expect(deque.pollLast()).toBe(2);
54
+ expect(deque.popLast()).toBe(2);
55
55
  expect(deque.size).toBe(1);
56
56
  });
57
57
  // Add more test cases as needed
@@ -68,20 +68,20 @@ describe('Deque Tests', () => {
68
68
  it('should add elements at the beginning and end', () => {
69
69
  objectDeque.addFirst('one');
70
70
  objectDeque.addLast('two');
71
- expect(objectDeque.peekFirst()).toBe('one');
72
- expect(objectDeque.peekLast()).toBe('two');
71
+ expect(objectDeque.getFirst()).toBe('one');
72
+ expect(objectDeque.getLast()).toBe('two');
73
73
  });
74
74
 
75
75
  it('should delete elements from the beginning and end', () => {
76
76
  objectDeque.addFirst('one');
77
77
  objectDeque.addLast('two');
78
- objectDeque.pollFirst();
79
- objectDeque.pollLast();
78
+ objectDeque.popFirst();
79
+ objectDeque.popLast();
80
80
  expect(objectDeque.isEmpty()).toBe(true);
81
81
  });
82
82
 
83
83
  it('should handle edge case when removing from an empty deque', () => {
84
- const result = objectDeque.pollFirst();
84
+ const result = objectDeque.popFirst();
85
85
  expect(result).toBeUndefined();
86
86
  });
87
87
 
@@ -105,20 +105,20 @@ describe('Deque Tests', () => {
105
105
  it('should add elements at the beginning and end', () => {
106
106
  arrayDeque.addFirst(1);
107
107
  arrayDeque.addLast(2);
108
- expect(arrayDeque.peekFirst()).toBe(1);
109
- expect(arrayDeque.peekLast()).toBe(2);
108
+ expect(arrayDeque.getFirst()).toBe(1);
109
+ expect(arrayDeque.getLast()).toBe(2);
110
110
  });
111
111
 
112
112
  it('should delete elements from the beginning and end', () => {
113
113
  arrayDeque.addFirst(1);
114
114
  arrayDeque.addLast(2);
115
- arrayDeque.pollFirst();
116
- arrayDeque.pollLast();
115
+ arrayDeque.popFirst();
116
+ arrayDeque.popLast();
117
117
  expect(arrayDeque.isEmpty()).toBe(true);
118
118
  });
119
119
 
120
120
  it('should handle edge case when removing from an empty deque', () => {
121
- const result = arrayDeque.pollFirst();
121
+ const result = arrayDeque.popFirst();
122
122
  expect(result).toBeNull();
123
123
  });
124
124
 
@@ -165,16 +165,16 @@ describe('Deque', () => {
165
165
  deque.addLast(2);
166
166
 
167
167
  expect(deque.size).toBe(2);
168
- expect(deque.peekFirst()).toBe(1);
169
- expect(deque.peekLast()).toBe(2);
168
+ expect(deque.getFirst()).toBe(1);
169
+ expect(deque.getLast()).toBe(2);
170
170
  });
171
171
 
172
172
  test('should remove elements from the front and back', () => {
173
173
  deque.addFirst(1);
174
174
  deque.addLast(2);
175
175
 
176
- const firstElement = deque.pollFirst();
177
- const lastElement = deque.pollLast();
176
+ const firstElement = deque.popFirst();
177
+ const lastElement = deque.popLast();
178
178
 
179
179
  expect(deque.size).toBe(0);
180
180
  expect(firstElement).toBe(1);
@@ -203,7 +203,7 @@ describe('Deque', () => {
203
203
  deque.addLast(1);
204
204
  expect(deque.isEmpty()).toBe(false);
205
205
 
206
- deque.pollFirst();
206
+ deque.popFirst();
207
207
  expect(deque.isEmpty()).toBe(true);
208
208
  });
209
209
  });
@@ -225,16 +225,16 @@ describe('ArrayDeque', () => {
225
225
  deque.addLast(2);
226
226
 
227
227
  expect(deque.size).toBe(2);
228
- expect(deque.peekFirst()).toBe(1);
229
- expect(deque.peekLast()).toBe(2);
228
+ expect(deque.getFirst()).toBe(1);
229
+ expect(deque.getLast()).toBe(2);
230
230
  });
231
231
 
232
232
  test('should remove elements from the front and back', () => {
233
233
  deque.addFirst(1);
234
234
  deque.addLast(2);
235
235
 
236
- const firstElement = deque.pollFirst();
237
- const lastElement = deque.pollLast();
236
+ const firstElement = deque.popFirst();
237
+ const lastElement = deque.popLast();
238
238
 
239
239
  expect(deque.size).toBe(0);
240
240
  expect(firstElement).toBe(1);
@@ -263,7 +263,7 @@ describe('ArrayDeque', () => {
263
263
  deque.addLast(1);
264
264
  expect(deque.isEmpty()).toBe(false);
265
265
 
266
- deque.pollFirst();
266
+ deque.popFirst();
267
267
  expect(deque.isEmpty()).toBe(true);
268
268
  });
269
269
 
@@ -319,8 +319,8 @@ describe('ObjectDeque', () => {
319
319
  deque.addFirst(2);
320
320
 
321
321
  expect(deque.size).toBe(2);
322
- expect(deque.peekFirst()).toBe(2);
323
- expect(deque.peekLast()).toBe(1);
322
+ expect(deque.getFirst()).toBe(2);
323
+ expect(deque.getLast()).toBe(1);
324
324
  });
325
325
 
326
326
  test('should add elements to the end of the deque', () => {
@@ -328,37 +328,37 @@ describe('ObjectDeque', () => {
328
328
  deque.addLast(2);
329
329
 
330
330
  expect(deque.size).toBe(2);
331
- expect(deque.peekFirst()).toBe(1);
332
- expect(deque.peekLast()).toBe(2);
331
+ expect(deque.getFirst()).toBe(1);
332
+ expect(deque.getLast()).toBe(2);
333
333
  });
334
334
 
335
335
  test('should remove elements from the front of the deque', () => {
336
336
  deque.addLast(1);
337
337
  deque.addLast(2);
338
338
 
339
- const removedElement = deque.pollFirst();
339
+ const removedElement = deque.popFirst();
340
340
 
341
341
  expect(deque.size).toBe(1);
342
342
  expect(removedElement).toBe(1);
343
- expect(deque.peekFirst()).toBe(2);
343
+ expect(deque.getFirst()).toBe(2);
344
344
  });
345
345
 
346
346
  test('should remove elements from the end of the deque', () => {
347
347
  deque.addLast(1);
348
348
  deque.addLast(2);
349
349
 
350
- const removedElement = deque.pollFirst();
350
+ const removedElement = deque.popFirst();
351
351
 
352
352
  expect(deque.size).toBe(1);
353
353
  expect(removedElement).toBe(1);
354
- expect(deque.peekLast()).toBe(2);
354
+ expect(deque.getLast()).toBe(2);
355
355
  });
356
356
 
357
357
  test('should return the element at the front of the deque without removing it', () => {
358
358
  deque.addFirst(1);
359
359
  deque.addFirst(2);
360
360
 
361
- expect(deque.peekFirst()).toBe(2);
361
+ expect(deque.getFirst()).toBe(2);
362
362
  expect(deque.size).toBe(2);
363
363
  });
364
364
 
@@ -366,7 +366,7 @@ describe('ObjectDeque', () => {
366
366
  deque.addLast(1);
367
367
  deque.addLast(2);
368
368
 
369
- expect(deque.peekLast()).toBe(2);
369
+ expect(deque.getLast()).toBe(2);
370
370
  expect(deque.size).toBe(2);
371
371
  });
372
372
 
@@ -391,9 +391,9 @@ describe('ObjectDeque', () => {
391
391
  deque.addLast(2);
392
392
  deque.addLast(3);
393
393
 
394
- expect(deque.peekFirst()).toBe(1);
394
+ expect(deque.getFirst()).toBe(1);
395
395
  expect(deque.get(1)).toBe(2);
396
- expect(deque.peekLast()).toBe(3);
396
+ expect(deque.getLast()).toBe(3);
397
397
  });
398
398
 
399
399
  test('should insert elements at a specific index', () => {
@@ -402,9 +402,9 @@ describe('ObjectDeque', () => {
402
402
  deque.addLast(3);
403
403
 
404
404
  expect(deque.size).toBe(3);
405
- expect(deque.peekFirst()).toBe(1);
405
+ expect(deque.getFirst()).toBe(1);
406
406
  expect(deque.get(1)).toBe(2);
407
407
  expect(deque.get(2)).toBe(3);
408
- expect(deque.peekLast()).toBe(3);
408
+ expect(deque.getLast()).toBe(3);
409
409
  });
410
410
  });
@@ -86,7 +86,7 @@ describe('Queue', () => {
86
86
  queue.push(2);
87
87
  expect(queue.size).toBe(2);
88
88
  expect(queue.peek()).toBe(1);
89
- expect(queue.peekLast()).toBe(2);
89
+ expect(queue.getLast()).toBe(2);
90
90
  });
91
91
 
92
92
  it('should shift elements from the front of the queue', () => {
@@ -96,7 +96,7 @@ describe('Queue', () => {
96
96
  expect(shifted).toBe(1);
97
97
  expect(queue.size).toBe(1);
98
98
  expect(queue.peek()).toBe(2);
99
- expect(queue.peekLast()).toBe(2);
99
+ expect(queue.getLast()).toBe(2);
100
100
  });
101
101
 
102
102
  it('should handle shifting when queue reaches half size', () => {
@@ -117,7 +117,7 @@ describe('Queue', () => {
117
117
  queue.push(1);
118
118
  queue.push(2);
119
119
  expect(queue.peek()).toBe(1);
120
- expect(queue.peekLast()).toBe(2);
120
+ expect(queue.getLast()).toBe(2);
121
121
  });
122
122
 
123
123
  it('should handle shifting when the queue is empty', () => {
@@ -129,7 +129,7 @@ describe('Queue', () => {
129
129
 
130
130
  it('should handle peeking when the queue is empty', () => {
131
131
  expect(queue.peek()).toBeUndefined();
132
- expect(queue.peekLast()).toBeUndefined();
132
+ expect(queue.getLast()).toBeUndefined();
133
133
  });
134
134
 
135
135
  it('should handle clearing the queue', () => {
@@ -139,7 +139,7 @@ describe('Queue', () => {
139
139
  queue.clear();
140
140
  expect(queue.size).toBe(0);
141
141
  expect(queue.peek()).toBeUndefined();
142
- expect(queue.peekLast()).toBeUndefined();
142
+ expect(queue.getLast()).toBeUndefined();
143
143
  });
144
144
 
145
145
  it('should clone the queue', () => {
@@ -149,7 +149,7 @@ describe('Queue', () => {
149
149
  const clonedQueue = queue.clone();
150
150
  expect(clonedQueue.size).toBe(3);
151
151
  expect(clonedQueue.peek()).toBe(1);
152
- expect(clonedQueue.peekLast()).toBe(3);
152
+ expect(clonedQueue.getLast()).toBe(3);
153
153
  });
154
154
 
155
155
  it('should handle creating a queue from an array', () => {
@@ -157,7 +157,7 @@ describe('Queue', () => {
157
157
  const newQueue = Queue.fromArray(elements);
158
158
  expect(newQueue.size).toBe(5);
159
159
  expect(newQueue.peek()).toBe(1);
160
- expect(newQueue.peekLast()).toBe(5);
160
+ expect(newQueue.getLast()).toBe(5);
161
161
  });
162
162
 
163
163
  it('should iterate through the queue', () => {