data-structure-typed 1.50.7 → 1.50.9

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 (69) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +73 -67
  3. package/benchmark/report.html +1 -37
  4. package/benchmark/report.json +15 -393
  5. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +14 -3
  6. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +17 -6
  7. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
  8. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +1 -1
  9. package/dist/cjs/data-structures/binary-tree/binary-tree.js +33 -34
  10. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  11. package/dist/cjs/data-structures/binary-tree/bst.d.ts +22 -3
  12. package/dist/cjs/data-structures/binary-tree/bst.js +78 -39
  13. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  14. package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +5 -5
  15. package/dist/cjs/data-structures/binary-tree/rb-tree.js +47 -50
  16. package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
  17. package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +40 -23
  18. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +44 -28
  19. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
  20. package/dist/cjs/data-structures/heap/heap.d.ts +1 -1
  21. package/dist/cjs/data-structures/heap/heap.js +5 -5
  22. package/dist/cjs/types/common.d.ts +6 -29
  23. package/dist/cjs/types/common.js +0 -40
  24. package/dist/cjs/types/common.js.map +1 -1
  25. package/dist/cjs/types/data-structures/binary-tree/rb-tree.d.ts +1 -4
  26. package/dist/cjs/types/data-structures/binary-tree/rb-tree.js +0 -6
  27. package/dist/cjs/types/data-structures/binary-tree/rb-tree.js.map +1 -1
  28. package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +14 -3
  29. package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +17 -6
  30. package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +1 -1
  31. package/dist/mjs/data-structures/binary-tree/binary-tree.js +33 -34
  32. package/dist/mjs/data-structures/binary-tree/bst.d.ts +22 -3
  33. package/dist/mjs/data-structures/binary-tree/bst.js +78 -39
  34. package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +5 -5
  35. package/dist/mjs/data-structures/binary-tree/rb-tree.js +47 -50
  36. package/dist/mjs/data-structures/binary-tree/tree-multi-map.d.ts +40 -23
  37. package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +44 -28
  38. package/dist/mjs/data-structures/heap/heap.d.ts +1 -1
  39. package/dist/mjs/data-structures/heap/heap.js +5 -5
  40. package/dist/mjs/types/common.d.ts +6 -29
  41. package/dist/mjs/types/common.js +1 -39
  42. package/dist/mjs/types/data-structures/binary-tree/rb-tree.d.ts +1 -4
  43. package/dist/mjs/types/data-structures/binary-tree/rb-tree.js +1 -5
  44. package/dist/umd/data-structure-typed.js +212 -206
  45. package/dist/umd/data-structure-typed.min.js +2 -2
  46. package/dist/umd/data-structure-typed.min.js.map +1 -1
  47. package/package.json +6 -6
  48. package/src/data-structures/binary-tree/avl-tree-multi-map.ts +20 -7
  49. package/src/data-structures/binary-tree/binary-tree.ts +54 -45
  50. package/src/data-structures/binary-tree/bst.ts +86 -42
  51. package/src/data-structures/binary-tree/rb-tree.ts +49 -49
  52. package/src/data-structures/binary-tree/tree-multi-map.ts +48 -29
  53. package/src/data-structures/heap/heap.ts +5 -5
  54. package/src/types/common.ts +6 -30
  55. package/src/types/data-structures/binary-tree/rb-tree.ts +1 -1
  56. package/test/integration/all-in-one.test.ts +4 -4
  57. package/test/integration/avl-tree.test.ts +1 -1
  58. package/test/integration/bst.test.ts +2 -2
  59. package/test/performance/data-structures/binary-tree/avl-tree.test.ts +20 -15
  60. package/test/performance/data-structures/binary-tree/binary-tree.test.ts +1 -1
  61. package/test/performance/data-structures/binary-tree/rb-tree.test.ts +13 -22
  62. package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +15 -23
  63. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +8 -8
  64. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +127 -74
  65. package/test/unit/data-structures/binary-tree/bst.test.ts +20 -20
  66. package/test/unit/data-structures/binary-tree/overall.test.ts +7 -7
  67. package/test/unit/data-structures/binary-tree/rb-tree.test.ts +31 -26
  68. package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +26 -34
  69. package/test/unit/data-structures/priority-queue/priority-queue.test.ts +3 -3
@@ -1,4 +1,4 @@
1
- import { BinaryTreeNode, BSTNode, IterationType, RBTNColor, RedBlackTree, RedBlackTreeNode } from '../../../../src';
1
+ import { BinaryTreeNode, BSTNode, RedBlackTree, RedBlackTreeNode } from '../../../../src';
2
2
  import { getRandomInt, getRandomIntArray, magnitude } from '../../../utils';
3
3
  import { OrderedMap } from 'js-sdsl';
4
4
 
@@ -53,6 +53,11 @@ describe('RedBlackTree 1', () => {
53
53
 
54
54
  expect(rbTree.getNode(15)).toBe(undefined);
55
55
  });
56
+
57
+ it('should getNode performance O(log n)', () => {
58
+ for (let i = 0; i < 10; i++) rbTree.add(i);
59
+ rbTree.getNode(6);
60
+ });
56
61
  });
57
62
 
58
63
  describe('minimum', () => {
@@ -258,42 +263,42 @@ describe('RedBlackTree 2', () => {
258
263
  let node6F = rbTree.getNode(6);
259
264
  let node2F = rbTree.getNode(2);
260
265
  expect(node10F?.key).toBe(10);
261
- expect(node10F?.color).toBe(RBTNColor.BLACK);
266
+ expect(node10F?.color).toBe('BLACK');
262
267
  expect(node10F?.left).toBe(node5F);
263
268
  expect(node10F?.right).toBe(node20F);
264
269
  expect(node10F?.parent).toBe(undefined);
265
270
  expect(node20F?.key).toBe(20);
266
- expect(node20F?.color).toBe(RBTNColor.BLACK);
271
+ expect(node20F?.color).toBe('BLACK');
267
272
  expect(node20F?.left).toBe(node15F);
268
273
  expect(node20F?.right).toBe(node21F);
269
274
  expect(node20F?.parent).toBe(node10F);
270
275
  expect(node5F?.key).toBe(5);
271
- expect(node5F?.color).toBe(RBTNColor.BLACK);
276
+ expect(node5F?.color).toBe('BLACK');
272
277
  expect(node5F?.left).toBe(node2F);
273
278
  expect(node5F?.right).toBe(node6F);
274
279
  expect(node5F?.parent).toBe(node10F);
275
280
  expect(node15F?.key).toBe(15);
276
- expect(node15F?.color).toBe(RBTNColor.RED);
281
+ expect(node15F?.color).toBe('RED');
277
282
  expect(node15F?.left).toBe(rbTree.SENTINEL);
278
283
  expect(node15F?.right).toBe(rbTree.SENTINEL);
279
284
  expect(node15F?.parent).toBe(node20F);
280
285
  expect(node21F?.key).toBe(21);
281
- expect(node21F?.color).toBe(RBTNColor.RED);
286
+ expect(node21F?.color).toBe('RED');
282
287
  expect(node21F?.left).toBe(rbTree.SENTINEL);
283
288
  expect(node21F?.right).toBe(rbTree.SENTINEL);
284
289
  expect(node21F?.parent).toBe(node20F);
285
290
  expect(node6F?.key).toBe(6);
286
- expect(node6F?.color).toBe(RBTNColor.RED);
291
+ expect(node6F?.color).toBe('RED');
287
292
  expect(node6F?.left).toBe(rbTree.SENTINEL);
288
293
  expect(node6F?.right).toBe(rbTree.SENTINEL);
289
294
  expect(node6F?.parent).toBe(node5F);
290
295
  expect(node2F?.key).toBe(2);
291
- expect(node2F?.color).toBe(RBTNColor.RED);
296
+ expect(node2F?.color).toBe('RED');
292
297
  expect(node2F?.left).toBe(rbTree.SENTINEL);
293
298
  expect(node2F?.right).toBe(rbTree.SENTINEL);
294
299
  expect(node2F?.parent).toBe(node5F);
295
300
  expect(node15F?.key).toBe(15);
296
- expect(node15F?.color).toBe(RBTNColor.RED);
301
+ expect(node15F?.color).toBe('RED');
297
302
  expect(node15F?.left).toBe(rbTree.SENTINEL);
298
303
  expect(node15F?.right).toBe(rbTree.SENTINEL);
299
304
  expect(node15F?.parent).toBe(node20F);
@@ -306,38 +311,38 @@ describe('RedBlackTree 2', () => {
306
311
  node6F = rbTree.getNode(6);
307
312
  node2F = rbTree.getNode(2);
308
313
  expect(node10F?.key).toBe(10);
309
- expect(node10F?.color).toBe(RBTNColor.BLACK);
314
+ expect(node10F?.color).toBe('BLACK');
310
315
  expect(node10F?.left).toBe(node6F);
311
316
  expect(node10F?.right).toBe(node20F);
312
317
  expect(node10F?.parent).toBe(undefined);
313
318
  expect(node20F?.key).toBe(20);
314
- expect(node20F?.color).toBe(RBTNColor.BLACK);
319
+ expect(node20F?.color).toBe('BLACK');
315
320
  expect(node20F?.left).toBe(node15F);
316
321
  expect(node20F?.right).toBe(node21F);
317
322
  expect(node20F?.parent).toBe(node10F);
318
323
  expect(node5F).toBe(undefined);
319
324
  expect(node15F?.key).toBe(15);
320
- expect(node15F?.color).toBe(RBTNColor.RED);
325
+ expect(node15F?.color).toBe('RED');
321
326
  expect(node15F?.left).toBe(rbTree.SENTINEL);
322
327
  expect(node15F?.right).toBe(rbTree.SENTINEL);
323
328
  expect(node15F?.parent).toBe(node20F);
324
329
  expect(node21F?.key).toBe(21);
325
- expect(node21F?.color).toBe(RBTNColor.RED);
330
+ expect(node21F?.color).toBe('RED');
326
331
  expect(node21F?.left).toBe(rbTree.SENTINEL);
327
332
  expect(node21F?.right).toBe(rbTree.SENTINEL);
328
333
  expect(node21F?.parent).toBe(node20F);
329
334
  expect(node6F?.key).toBe(6);
330
- expect(node6F?.color).toBe(RBTNColor.BLACK);
335
+ expect(node6F?.color).toBe('BLACK');
331
336
  expect(node6F?.left).toBe(node2F);
332
337
  expect(node6F?.right).toBe(rbTree.SENTINEL);
333
338
  expect(node6F?.parent).toBe(node10F);
334
339
  expect(node2F?.key).toBe(2);
335
- expect(node2F?.color).toBe(RBTNColor.RED);
340
+ expect(node2F?.color).toBe('RED');
336
341
  expect(node2F?.left).toBe(rbTree.SENTINEL);
337
342
  expect(node2F?.right).toBe(rbTree.SENTINEL);
338
343
  expect(node2F?.parent).toBe(node6F);
339
344
  expect(node15F?.key).toBe(15);
340
- expect(node15F?.color).toBe(RBTNColor.RED);
345
+ expect(node15F?.color).toBe('RED');
341
346
  expect(node15F?.left).toBe(rbTree.SENTINEL);
342
347
  expect(node15F?.right).toBe(rbTree.SENTINEL);
343
348
  expect(node15F?.parent).toBe(node20F);
@@ -350,34 +355,34 @@ describe('RedBlackTree 2', () => {
350
355
  node6F = rbTree.getNode(6);
351
356
  node2F = rbTree.getNode(2);
352
357
  expect(node10F?.key).toBe(10);
353
- expect(node10F?.color).toBe(RBTNColor.BLACK);
358
+ expect(node10F?.color).toBe('BLACK');
354
359
  expect(node10F?.left).toBe(node6F);
355
360
  expect(node10F?.right).toBe(node21F);
356
361
  expect(node10F?.parent).toBe(undefined);
357
362
  expect(node20F).toBe(undefined);
358
363
  expect(node5F).toBe(undefined);
359
364
  expect(node15F?.key).toBe(15);
360
- expect(node15F?.color).toBe(RBTNColor.RED);
365
+ expect(node15F?.color).toBe('RED');
361
366
  expect(node15F?.left).toBe(rbTree.SENTINEL);
362
367
  expect(node15F?.right).toBe(rbTree.SENTINEL);
363
368
  expect(node15F?.parent).toBe(node21F);
364
369
  expect(node21F?.key).toBe(21);
365
- expect(node21F?.color).toBe(RBTNColor.BLACK);
370
+ expect(node21F?.color).toBe('BLACK');
366
371
  expect(node21F?.left).toBe(node15F);
367
372
  expect(node21F?.right).toBe(rbTree.SENTINEL);
368
373
  expect(node21F?.parent).toBe(node10F);
369
374
  expect(node6F?.key).toBe(6);
370
- expect(node6F?.color).toBe(RBTNColor.BLACK);
375
+ expect(node6F?.color).toBe('BLACK');
371
376
  expect(node6F?.left).toBe(node2F);
372
377
  expect(node6F?.right).toBe(rbTree.SENTINEL);
373
378
  expect(node6F?.parent).toBe(node10F);
374
379
  expect(node2F?.key).toBe(2);
375
- expect(node2F?.color).toBe(RBTNColor.RED);
380
+ expect(node2F?.color).toBe('RED');
376
381
  expect(node2F?.left).toBe(rbTree.SENTINEL);
377
382
  expect(node2F?.right).toBe(rbTree.SENTINEL);
378
383
  expect(node2F?.parent).toBe(node6F);
379
384
  expect(node15F?.key).toBe(15);
380
- expect(node15F?.color).toBe(RBTNColor.RED);
385
+ expect(node15F?.color).toBe('RED');
381
386
  expect(node15F?.left).toBe(rbTree.SENTINEL);
382
387
  expect(node15F?.right).toBe(rbTree.SENTINEL);
383
388
  expect(node15F?.parent).toBe(node21F);
@@ -477,13 +482,13 @@ describe('RedBlackTree 2', () => {
477
482
 
478
483
  expect(rbTree.size).toBe(51);
479
484
  expect(rbTree.isBST()).toBe(true);
480
- expect(rbTree.isBST(rbTree.root, IterationType.RECURSIVE)).toBe(true);
485
+ expect(rbTree.isBST(rbTree.root, 'RECURSIVE')).toBe(true);
481
486
 
482
- expect(rbTree.dfs(n => n.key, 'in', rbTree.root, IterationType.ITERATIVE)).toEqual([
487
+ expect(rbTree.dfs(n => n.key, 'IN', rbTree.root, 'ITERATIVE')).toEqual([
483
488
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
484
489
  77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
485
490
  ]);
486
- expect(rbTree.dfs(n => n.key, 'in', rbTree.root, IterationType.RECURSIVE)).toEqual([
491
+ expect(rbTree.dfs(n => n.key, 'IN', rbTree.root, 'RECURSIVE')).toEqual([
487
492
  49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
488
493
  77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
489
494
  ]);
@@ -499,7 +504,7 @@ describe('RedBlackTree 2', () => {
499
504
 
500
505
  expect(rbTree.size).toBe(0);
501
506
  expect(rbTree.isBST()).toBe(true);
502
- expect(rbTree.dfs(n => n.key, 'in', rbTree.root, IterationType.ITERATIVE)).toEqual([]);
507
+ expect(rbTree.dfs(n => n.key, 'IN', rbTree.root, 'ITERATIVE')).toEqual([]);
503
508
 
504
509
  rbTree.clear();
505
510
  for (let i = 0; i < 1000; i++) {
@@ -1,12 +1,4 @@
1
- import {
2
- BinaryTreeNode,
3
- BSTNode,
4
- CP,
5
- IterationType,
6
- RedBlackTreeNode,
7
- TreeMultiMap,
8
- TreeMultiMapNode
9
- } from '../../../../src';
1
+ import { BinaryTreeNode, BSTNode, RedBlackTreeNode, TreeMultiMap, TreeMultiMapNode } from '../../../../src';
10
2
  import { isDebugTest } from '../../../config';
11
3
  import { getRandomInt } from '../../../utils';
12
4
 
@@ -30,7 +22,7 @@ describe('TreeMultiMap count', () => {
30
22
  const newNode = new TreeMultiMapNode(3, 33, 10);
31
23
  tmm.add(newNode);
32
24
  expect(tmm.count).toBe(15);
33
- expect(tmm.getMutableCount()).toBe(15);
25
+ expect(tmm.getComputedCount()).toBe(15);
34
26
  expect(tmm.getNode(3)?.count).toBe(11);
35
27
  });
36
28
 
@@ -40,8 +32,8 @@ describe('TreeMultiMap count', () => {
40
32
  [2, 2],
41
33
  [3, 3]
42
34
  ]);
43
- tmm.lesserOrGreaterTraverse(node => (node.count += 2), CP.gt, 1);
44
- expect(tmm.getMutableCount()).toBe(7);
35
+ tmm.lesserOrGreaterTraverse(node => (node.count += 2), 'GT', 1);
36
+ expect(tmm.getComputedCount()).toBe(7);
45
37
  expect(tmm.count).toBe(3);
46
38
  });
47
39
  });
@@ -65,7 +57,7 @@ describe('TreeMultiMap operations test1', () => {
65
57
  tmm.add([11, 11]);
66
58
  tmm.add([3, 3]);
67
59
  expect(tmm.count).toBe(2);
68
- expect(tmm.getMutableCount()).toBe(2);
60
+ expect(tmm.getComputedCount()).toBe(2);
69
61
  expect(tmm.size).toBe(2);
70
62
 
71
63
  const keyValuePairs: [number, number][] = [
@@ -90,13 +82,13 @@ describe('TreeMultiMap operations test1', () => {
90
82
  tmm.addMany(keyValuePairs);
91
83
  expect(tmm.size).toBe(16);
92
84
  expect(tmm.count).toBe(18);
93
- expect(tmm.getMutableCount()).toBe(18);
85
+ expect(tmm.getComputedCount()).toBe(18);
94
86
  tmm.delete(11);
95
87
  expect(tmm.count).toBe(17);
96
- expect(tmm.getMutableCount()).toBe(17);
88
+ expect(tmm.getComputedCount()).toBe(17);
97
89
  tmm.delete(3, undefined, true);
98
90
  expect(tmm.count).toBe(15);
99
- expect(tmm.getMutableCount()).toBe(15);
91
+ expect(tmm.getComputedCount()).toBe(15);
100
92
  });
101
93
 
102
94
  it('should perform various operations on a Binary Search Tree with numeric values1', () => {
@@ -131,7 +123,7 @@ describe('TreeMultiMap operations test1', () => {
131
123
 
132
124
  expect(tmm.size).toBe(16);
133
125
  expect(tmm.count).toBe(18);
134
- expect(tmm.getMutableCount()).toBe(18);
126
+ expect(tmm.getComputedCount()).toBe(18);
135
127
 
136
128
  expect(tmm.has(6));
137
129
  isDebug && tmm.print();
@@ -156,25 +148,25 @@ describe('TreeMultiMap operations test1', () => {
156
148
  expect(minNodeBySpecificNode?.key).toBe(14);
157
149
 
158
150
  let subTreeSum = 0;
159
- node15 && tmm.dfs(node => (subTreeSum += node.key), 'pre', 15);
151
+ node15 && tmm.dfs(node => (subTreeSum += node.key), 'PRE', 15);
160
152
  expect(subTreeSum).toBe(45);
161
153
  let lesserSum = 0;
162
- tmm.lesserOrGreaterTraverse((node: TreeMultiMapNode<number>) => (lesserSum += node.key), CP.lt, 10);
154
+ tmm.lesserOrGreaterTraverse((node: TreeMultiMapNode<number>) => (lesserSum += node.key), 'LT', 10);
163
155
  expect(lesserSum).toBe(45);
164
156
 
165
157
  expect(node15 instanceof TreeMultiMapNode);
166
158
  if (node15 instanceof TreeMultiMapNode) {
167
- const subTreeAdd = tmm.dfs(node => (node.count += 1), 'pre', 15);
159
+ const subTreeAdd = tmm.dfs(node => (node.count += 1), 'PRE', 15);
168
160
  expect(subTreeAdd);
169
161
  }
170
162
  const node11 = tmm.getNode(11);
171
163
  expect(node11 instanceof TreeMultiMapNode);
172
164
  if (node11 instanceof TreeMultiMapNode) {
173
- const allGreaterNodesAdded = tmm.lesserOrGreaterTraverse(node => (node.count += 2), CP.gt, 11);
165
+ const allGreaterNodesAdded = tmm.lesserOrGreaterTraverse(node => (node.count += 2), 'GT', 11);
174
166
  expect(allGreaterNodesAdded);
175
167
  }
176
168
 
177
- const dfsInorderNodes = tmm.dfs(node => node, 'in');
169
+ const dfsInorderNodes = tmm.dfs(node => node, 'IN');
178
170
  expect(dfsInorderNodes[0].key).toBe(1);
179
171
  expect(dfsInorderNodes[dfsInorderNodes.length - 1].key).toBe(16);
180
172
  expect(tmm.isPerfectlyBalanced()).toBe(false);
@@ -317,7 +309,7 @@ describe('TreeMultiMap operations test1', () => {
317
309
  expect(bfsNodes[2].key).toBe(16);
318
310
 
319
311
  expect(tmm.count).toBe(6);
320
- expect(tmm.getMutableCount()).toBe(8);
312
+ expect(tmm.getComputedCount()).toBe(8);
321
313
  });
322
314
 
323
315
  it('should perform various operations on a Binary Search Tree with object values', () => {
@@ -349,7 +341,7 @@ describe('TreeMultiMap operations test1', () => {
349
341
  if (objTreeMultiMap.root) expect(objTreeMultiMap.root.key).toBe(5);
350
342
 
351
343
  expect(objTreeMultiMap.count).toBe(16);
352
- expect(objTreeMultiMap.getMutableCount()).toBe(16);
344
+ expect(objTreeMultiMap.getComputedCount()).toBe(16);
353
345
 
354
346
  expect(objTreeMultiMap.has(6)).toBe(true);
355
347
  });
@@ -357,7 +349,7 @@ describe('TreeMultiMap operations test1', () => {
357
349
 
358
350
  describe('TreeMultiMap operations test recursively1', () => {
359
351
  it('should perform various operations on a Binary Search Tree with numeric values1', () => {
360
- const tmm = new TreeMultiMap<number>([], { iterationType: IterationType.RECURSIVE });
352
+ const tmm = new TreeMultiMap<number>([], { iterationType: 'RECURSIVE' });
361
353
 
362
354
  expect(tmm instanceof TreeMultiMap);
363
355
  tmm.add([11, 11]);
@@ -387,7 +379,7 @@ describe('TreeMultiMap operations test recursively1', () => {
387
379
 
388
380
  expect(tmm.size).toBe(16);
389
381
  expect(tmm.count).toBe(18);
390
- expect(tmm.getMutableCount()).toBe(18);
382
+ expect(tmm.getComputedCount()).toBe(18);
391
383
 
392
384
  expect(tmm.has(6));
393
385
 
@@ -412,7 +404,7 @@ describe('TreeMultiMap operations test recursively1', () => {
412
404
  expect(minNodeBySpecificNode?.key).toBe(14);
413
405
 
414
406
  let subTreeSum = 0;
415
- node15 && tmm.dfs(node => (subTreeSum += node.key), 'pre', 15);
407
+ node15 && tmm.dfs(node => (subTreeSum += node.key), 'PRE', 15);
416
408
  expect(subTreeSum).toBe(45);
417
409
  let lesserSum = 0;
418
410
  expect(tmm.has(9)).toBe(true);
@@ -421,24 +413,24 @@ describe('TreeMultiMap operations test recursively1', () => {
421
413
  lesserSum += node.key;
422
414
  return node.key;
423
415
  },
424
- CP.lt,
416
+ 'LT',
425
417
  10
426
418
  );
427
419
  expect(lesserSum).toBe(45);
428
420
 
429
421
  expect(node15 instanceof TreeMultiMapNode);
430
422
  if (node15 instanceof TreeMultiMapNode) {
431
- const subTreeAdd = tmm.dfs(node => (node.count += 1), 'pre', 15);
423
+ const subTreeAdd = tmm.dfs(node => (node.count += 1), 'PRE', 15);
432
424
  expect(subTreeAdd);
433
425
  }
434
426
  const node11 = tmm.getNode(11);
435
427
  expect(node11 instanceof TreeMultiMapNode);
436
428
  if (node11 instanceof TreeMultiMapNode) {
437
- const allGreaterNodesAdded = tmm.lesserOrGreaterTraverse(node => (node.count += 2), CP.gt, 11);
429
+ const allGreaterNodesAdded = tmm.lesserOrGreaterTraverse(node => (node.count += 2), 'GT', 11);
438
430
  expect(allGreaterNodesAdded);
439
431
  }
440
432
 
441
- const dfsInorderNodes = tmm.dfs(node => node, 'in');
433
+ const dfsInorderNodes = tmm.dfs(node => node, 'IN');
442
434
  expect(dfsInorderNodes[0].key).toBe(1);
443
435
  expect(dfsInorderNodes[dfsInorderNodes.length - 1].key).toBe(16);
444
436
  expect(tmm.isPerfectlyBalanced()).toBe(false);
@@ -582,7 +574,7 @@ describe('TreeMultiMap operations test recursively1', () => {
582
574
  expect(bfsNodes[2].key).toBe(16);
583
575
 
584
576
  expect(tmm.count).toBe(6);
585
- expect(tmm.getMutableCount()).toBe(8);
577
+ expect(tmm.getComputedCount()).toBe(8);
586
578
  });
587
579
 
588
580
  it('should perform various operations on a Binary Search Tree with object values', () => {
@@ -614,7 +606,7 @@ describe('TreeMultiMap operations test recursively1', () => {
614
606
  if (objTreeMultiMap.root) expect(objTreeMultiMap.root.key).toBe(5);
615
607
 
616
608
  expect(objTreeMultiMap.count).toBe(16);
617
- expect(objTreeMultiMap.getMutableCount()).toBe(16);
609
+ expect(objTreeMultiMap.getComputedCount()).toBe(16);
618
610
 
619
611
  expect(objTreeMultiMap.has(6)).toBe(true);
620
612
  });
@@ -819,7 +811,7 @@ describe('TreeMultiMap iterative methods test', () => {
819
811
 
820
812
  test('should clone work well', () => {
821
813
  expect(treeMM.count).toBe(21);
822
- expect(treeMM.getMutableCount()).toBe(21);
814
+ expect(treeMM.getComputedCount()).toBe(21);
823
815
  const cloned = treeMM.clone();
824
816
  expect(cloned.root?.left?.key).toBe(1);
825
817
  expect(cloned.root?.right?.value).toBe('c');
@@ -42,9 +42,9 @@ describe('PriorityQueue Operation Test', () => {
42
42
  const clonedPriorityQueue = minPQ1.clone();
43
43
  expect(clonedPriorityQueue.elements).toEqual(minPQ1.elements);
44
44
  expect(clonedPriorityQueue.sort()).toEqual([1, 2, 3, 4, 5, 6, 7, 8]);
45
- expect(minPQ1.dfs('in')).toEqual([4, 3, 2, 5, 1, 8, 6, 7]);
46
- expect(minPQ1.dfs('post')).toEqual([4, 3, 5, 2, 8, 7, 6, 1]);
47
- expect(minPQ1.dfs('pre')).toEqual([1, 2, 3, 4, 5, 6, 8, 7]);
45
+ expect(minPQ1.dfs('IN')).toEqual([4, 3, 2, 5, 1, 8, 6, 7]);
46
+ expect(minPQ1.dfs('POST')).toEqual([4, 3, 5, 2, 8, 7, 6, 1]);
47
+ expect(minPQ1.dfs('PRE')).toEqual([1, 2, 3, 4, 5, 6, 8, 7]);
48
48
  });
49
49
  });
50
50