data-structure-typed 1.41.6 → 1.41.8

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 (115) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +14 -11
  3. package/benchmark/report.html +14 -11
  4. package/benchmark/report.json +153 -202
  5. package/dist/cjs/src/data-structures/binary-tree/rb-tree.d.ts +5 -2
  6. package/dist/cjs/src/data-structures/binary-tree/rb-tree.js +15 -2
  7. package/dist/cjs/src/data-structures/binary-tree/rb-tree.js.map +1 -1
  8. package/dist/cjs/src/data-structures/graph/abstract-graph.js +5 -5
  9. package/dist/cjs/src/data-structures/graph/abstract-graph.js.map +1 -1
  10. package/dist/mjs/src/data-structures/binary-tree/rb-tree.d.ts +5 -2
  11. package/dist/mjs/src/data-structures/binary-tree/rb-tree.js +15 -2
  12. package/dist/mjs/src/data-structures/graph/abstract-graph.js +5 -5
  13. package/dist/umd/data-structure-typed.min.js +1 -1
  14. package/dist/umd/data-structure-typed.min.js.map +1 -1
  15. package/package.json +5 -5
  16. package/src/data-structures/binary-tree/binary-tree.ts +1 -1
  17. package/src/data-structures/binary-tree/bst.ts +1 -1
  18. package/src/data-structures/binary-tree/rb-tree.ts +18 -2
  19. package/src/data-structures/graph/abstract-graph.ts +6 -6
  20. package/test/config.ts +1 -0
  21. package/test/integration/avl-tree.test.ts +110 -0
  22. package/test/integration/bst.test.ts +385 -0
  23. package/test/integration/heap.test.js +16 -0
  24. package/test/integration/index.html +51 -0
  25. package/test/performance/data-structures/binary-tree/avl-tree.test.ts +36 -0
  26. package/test/performance/data-structures/binary-tree/binary-index-tree.test.ts +0 -0
  27. package/test/performance/data-structures/binary-tree/binary-tree.test.ts +45 -0
  28. package/test/performance/data-structures/binary-tree/bst.test.ts +36 -0
  29. package/test/performance/data-structures/binary-tree/overall.test.ts +0 -0
  30. package/test/performance/data-structures/binary-tree/rb-tree.test.ts +32 -0
  31. package/test/performance/data-structures/binary-tree/segment-tree.test.ts +0 -0
  32. package/test/performance/data-structures/binary-tree/tree-multiset.test.ts +0 -0
  33. package/test/performance/data-structures/graph/abstract-graph.test.ts +0 -0
  34. package/test/performance/data-structures/graph/directed-graph.test.ts +49 -0
  35. package/test/performance/data-structures/graph/map-graph.test.ts +0 -0
  36. package/test/performance/data-structures/graph/overall.test.ts +0 -0
  37. package/test/performance/data-structures/graph/undirected-graph.test.ts +0 -0
  38. package/test/performance/data-structures/hash/coordinate-map.test.ts +0 -0
  39. package/test/performance/data-structures/hash/coordinate-set.test.ts +0 -0
  40. package/test/performance/data-structures/hash/hash-map.test.ts +0 -0
  41. package/test/performance/data-structures/hash/hash-table.test.ts +0 -0
  42. package/test/performance/data-structures/heap/heap.test.ts +30 -0
  43. package/test/performance/data-structures/heap/max-heap.test.ts +0 -0
  44. package/test/performance/data-structures/heap/min-heap.test.ts +0 -0
  45. package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +40 -0
  46. package/test/performance/data-structures/linked-list/linked-list.test.ts +0 -0
  47. package/test/performance/data-structures/linked-list/singly-linked-list.test.ts +34 -0
  48. package/test/performance/data-structures/linked-list/skip-linked-list.test.ts +0 -0
  49. package/test/performance/data-structures/linked-list/skip-list.test.ts +0 -0
  50. package/test/performance/data-structures/matrix/matrix.test.ts +0 -0
  51. package/test/performance/data-structures/matrix/matrix2d.test.ts +0 -0
  52. package/test/performance/data-structures/matrix/navigator.test.ts +0 -0
  53. package/test/performance/data-structures/matrix/vector2d.test.ts +0 -0
  54. package/test/performance/data-structures/priority-queue/max-priority-queue.test.ts +19 -0
  55. package/test/performance/data-structures/priority-queue/min-priority-queue.test.ts +0 -0
  56. package/test/performance/data-structures/priority-queue/priority-queue.test.ts +0 -0
  57. package/test/performance/data-structures/queue/deque.test.ts +21 -0
  58. package/test/performance/data-structures/queue/queue.test.ts +25 -0
  59. package/test/performance/data-structures/stack/stack.test.ts +0 -0
  60. package/test/performance/data-structures/tree/tree.test.ts +0 -0
  61. package/test/performance/data-structures/trie/trie.test.ts +22 -0
  62. package/test/performance/reportor.ts +185 -0
  63. package/test/performance/types/index.ts +1 -0
  64. package/test/performance/types/reportor.ts +3 -0
  65. package/test/types/index.ts +1 -0
  66. package/test/types/utils/big-o.ts +1 -0
  67. package/test/types/utils/index.ts +2 -0
  68. package/test/types/utils/json2html.ts +1 -0
  69. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +269 -0
  70. package/test/unit/data-structures/binary-tree/binary-index-tree.test.ts +320 -0
  71. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +486 -0
  72. package/test/unit/data-structures/binary-tree/bst.test.ts +840 -0
  73. package/test/unit/data-structures/binary-tree/overall.test.ts +66 -0
  74. package/test/unit/data-structures/binary-tree/rb-tree.test.ts +435 -0
  75. package/test/unit/data-structures/binary-tree/segment-tree.test.ts +50 -0
  76. package/test/unit/data-structures/binary-tree/tree-multiset.test.ts +542 -0
  77. package/test/unit/data-structures/graph/abstract-graph.test.ts +100 -0
  78. package/test/unit/data-structures/graph/directed-graph.test.ts +564 -0
  79. package/test/unit/data-structures/graph/map-graph.test.ts +126 -0
  80. package/test/unit/data-structures/graph/overall.test.ts +49 -0
  81. package/test/unit/data-structures/graph/salty-edges.json +1 -0
  82. package/test/unit/data-structures/graph/salty-vertexes.json +1 -0
  83. package/test/unit/data-structures/graph/undirected-graph.test.ts +167 -0
  84. package/test/unit/data-structures/hash/coordinate-map.test.ts +74 -0
  85. package/test/unit/data-structures/hash/coordinate-set.test.ts +66 -0
  86. package/test/unit/data-structures/hash/hash-map.test.ts +103 -0
  87. package/test/unit/data-structures/hash/hash-table.test.ts +186 -0
  88. package/test/unit/data-structures/heap/heap.test.ts +254 -0
  89. package/test/unit/data-structures/heap/max-heap.test.ts +52 -0
  90. package/test/unit/data-structures/heap/min-heap.test.ts +52 -0
  91. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +400 -0
  92. package/test/unit/data-structures/linked-list/linked-list.test.ts +8 -0
  93. package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +474 -0
  94. package/test/unit/data-structures/linked-list/skip-linked-list.test.ts +13 -0
  95. package/test/unit/data-structures/linked-list/skip-list.test.ts +86 -0
  96. package/test/unit/data-structures/matrix/matrix.test.ts +54 -0
  97. package/test/unit/data-structures/matrix/matrix2d.test.ts +345 -0
  98. package/test/unit/data-structures/matrix/navigator.test.ts +244 -0
  99. package/test/unit/data-structures/matrix/vector2d.test.ts +171 -0
  100. package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +73 -0
  101. package/test/unit/data-structures/priority-queue/min-priority-queue.test.ts +63 -0
  102. package/test/unit/data-structures/priority-queue/priority-queue.test.ts +53 -0
  103. package/test/unit/data-structures/queue/deque.test.ts +410 -0
  104. package/test/unit/data-structures/queue/queue.test.ts +207 -0
  105. package/test/unit/data-structures/stack/stack.test.ts +67 -0
  106. package/test/unit/data-structures/tree/tree.test.ts +39 -0
  107. package/test/unit/data-structures/trie/trie.test.ts +825 -0
  108. package/test/utils/array.ts +5514 -0
  109. package/test/utils/big-o.ts +207 -0
  110. package/test/utils/console.ts +31 -0
  111. package/test/utils/index.ts +7 -0
  112. package/test/utils/is.ts +56 -0
  113. package/test/utils/json2html.ts +322 -0
  114. package/test/utils/number.ts +13 -0
  115. package/test/utils/string.ts +1 -0
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE html>
2
+ <html lang='en'>
3
+ <head>
4
+ <meta charset='UTF-8'>
5
+ <title>CDN Test</title>
6
+ <script src='https://cdn.jsdelivr.net/npm/data-structure-typed/dist/umd/data-structure-typed.min.js'></script>
7
+ </head>
8
+ <body>
9
+ <div id='app'>
10
+ <ul class='modules'>
11
+
12
+ </ul>
13
+ </div>
14
+ <script defer>
15
+ const $modules = document.querySelector('.modules');
16
+
17
+
18
+ try {
19
+ const {AVLTree, Queue} = window.dataStructureTyped;
20
+ const avlTree = new AVLTree();
21
+ const $avlTree = document.createElement('li');
22
+ const $avlTreeSpan = document.createElement('span');
23
+ $avlTreeSpan.innerText = 'AVLTree';
24
+ $avlTree.append($avlTreeSpan);
25
+ avlTree.add(1, 1);
26
+ console.log(avlTree.bfs());
27
+ $modules.append($avlTree);
28
+
29
+
30
+ const queue = new Queue();
31
+ for (let i = 0; i < 1000000; i++) {
32
+ queue.enqueue(i);
33
+ }
34
+ let last = 0;
35
+ const startTime = performance.now();
36
+
37
+ for (let i = 0; i < 1000000; i++) {
38
+ last = queue.dequeue();
39
+ }
40
+
41
+ console.log(performance.now() - startTime);
42
+
43
+ } catch (e) {
44
+ console.error(e);
45
+ }
46
+
47
+ </script>
48
+
49
+ </body>
50
+ </html>
51
+
@@ -0,0 +1,36 @@
1
+ import {AVLTree} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {getRandomIntArray, magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const avl = new AVLTree<number>();
7
+ const {TEN_THOUSAND} = magnitude;
8
+ const arr = getRandomIntArray(TEN_THOUSAND, 0, TEN_THOUSAND, true);
9
+
10
+ suite
11
+ .add(`${TEN_THOUSAND.toLocaleString()} add randomly`, () => {
12
+ avl.clear();
13
+ for (let i = 0; i < arr.length; i++) {
14
+ avl.add(arr[i]);
15
+ }
16
+ })
17
+ .add(`${TEN_THOUSAND.toLocaleString()} add & delete randomly`, () => {
18
+ avl.clear();
19
+ for (let i = 0; i < arr.length; i++) {
20
+ avl.add(arr[i]);
21
+ }
22
+ for (let i = 0; i < arr.length; i++) {
23
+ avl.delete(arr[i]);
24
+ }
25
+ })
26
+ .add(`${TEN_THOUSAND.toLocaleString()} addMany`, () => {
27
+ avl.clear();
28
+ avl.addMany(arr);
29
+ })
30
+ .add(`${TEN_THOUSAND.toLocaleString()} get`, () => {
31
+ for (let i = 0; i < arr.length; i++) {
32
+ avl.get(arr[i]);
33
+ }
34
+ });
35
+
36
+ export {suite};
@@ -0,0 +1,45 @@
1
+ import {BinaryTree} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {getRandomIntArray, magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const biTree = new BinaryTree<number>();
7
+ const {N_LOG_N} = magnitude;
8
+ const arr = getRandomIntArray(N_LOG_N, 0, N_LOG_N, true);
9
+
10
+ suite
11
+ .add(`${N_LOG_N.toLocaleString()} add randomly`, () => {
12
+ biTree.clear();
13
+ for (let i = 0; i < arr.length; i++) {
14
+ biTree.add(arr[i]);
15
+ }
16
+ })
17
+ .add(`${N_LOG_N.toLocaleString()} add & delete randomly`, () => {
18
+ biTree.clear();
19
+ for (let i = 0; i < arr.length; i++) {
20
+ biTree.add(arr[i]);
21
+ }
22
+ for (let i = 0; i < arr.length; i++) {
23
+ biTree.delete(arr[i]);
24
+ }
25
+ })
26
+ .add(`${N_LOG_N.toLocaleString()} addMany`, () => {
27
+ biTree.clear();
28
+ biTree.addMany(arr);
29
+ })
30
+ .add(`${N_LOG_N.toLocaleString()} get`, () => {
31
+ for (let i = 0; i < arr.length; i++) {
32
+ biTree.get(arr[i]);
33
+ }
34
+ })
35
+ .add(`${N_LOG_N.toLocaleString()} dfs`, () => {
36
+ for (let i = 0; i < N_LOG_N; i++) biTree.dfs();
37
+ })
38
+ .add(`${N_LOG_N.toLocaleString()} bfs`, () => {
39
+ for (let i = 0; i < N_LOG_N; i++) biTree.bfs();
40
+ })
41
+ .add(`${N_LOG_N.toLocaleString()} morris`, () => {
42
+ for (let i = 0; i < N_LOG_N; i++) biTree.morris(n => n, 'pre');
43
+ });
44
+
45
+ export {suite};
@@ -0,0 +1,36 @@
1
+ import {BST} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {getRandomIntArray, magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const bst = new BST<number>();
7
+ const {TEN_THOUSAND} = magnitude;
8
+ const arr = getRandomIntArray(TEN_THOUSAND, 0, TEN_THOUSAND, true);
9
+
10
+ suite
11
+ .add(`${TEN_THOUSAND.toLocaleString()} add randomly`, () => {
12
+ bst.clear();
13
+ for (let i = 0; i < arr.length; i++) {
14
+ bst.add(arr[i]);
15
+ }
16
+ })
17
+ .add(`${TEN_THOUSAND.toLocaleString()} add & delete randomly`, () => {
18
+ bst.clear();
19
+ for (let i = 0; i < arr.length; i++) {
20
+ bst.add(arr[i]);
21
+ }
22
+ for (let i = 0; i < arr.length; i++) {
23
+ bst.delete(arr[i]);
24
+ }
25
+ })
26
+ .add(`${TEN_THOUSAND.toLocaleString()} addMany`, () => {
27
+ bst.clear();
28
+ bst.addMany(arr);
29
+ })
30
+ .add(`${TEN_THOUSAND.toLocaleString()} get`, () => {
31
+ for (let i = 0; i < arr.length; i++) {
32
+ bst.get(arr[i]);
33
+ }
34
+ });
35
+
36
+ export {suite};
@@ -0,0 +1,32 @@
1
+ import {RedBlackTree} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {getRandomIntArray, magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const rbTree = new RedBlackTree();
7
+ const {HUNDRED_THOUSAND} = magnitude;
8
+ const arr = getRandomIntArray(HUNDRED_THOUSAND, 0, HUNDRED_THOUSAND, true);
9
+
10
+ suite
11
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} add randomly`, () => {
12
+ rbTree.clear();
13
+ for (let i = 0; i < arr.length; i++) {
14
+ rbTree.add(arr[i]);
15
+ }
16
+ })
17
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} add & 1000 delete randomly`, () => {
18
+ rbTree.clear();
19
+ for (let i = 0; i < arr.length; i++) {
20
+ rbTree.add(arr[i]);
21
+ }
22
+ for (let i = 0; i < 1000; i++) {
23
+ rbTree.delete(arr[i]);
24
+ }
25
+ })
26
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} getNode`, () => {
27
+ for (let i = 0; i < arr.length; i++) {
28
+ rbTree.getNode(arr[i]);
29
+ }
30
+ });
31
+
32
+ export {suite};
@@ -0,0 +1,49 @@
1
+ import {DirectedGraph} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {getRandomIndex, getRandomWords, magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const {THOUSAND} = magnitude;
7
+ const graph = new DirectedGraph<number, number>();
8
+ const vertexes = getRandomWords(THOUSAND);
9
+
10
+ suite
11
+ .add(`${THOUSAND.toLocaleString()} addVertex`, () => {
12
+ for (const v of vertexes) {
13
+ graph.addVertex(v);
14
+ }
15
+ })
16
+ .add(`${THOUSAND.toLocaleString()} addEdge`, () => {
17
+ for (let i = 0; i < THOUSAND; i++) {
18
+ const v1 = vertexes[getRandomIndex(vertexes)];
19
+ const v2 = vertexes[getRandomIndex(vertexes)];
20
+ graph.addEdge(v1, v2);
21
+ }
22
+ })
23
+ .add(`${THOUSAND.toLocaleString()} getVertex`, () => {
24
+ for (let i = 0; i < THOUSAND; i++) {
25
+ graph.getVertex(vertexes[getRandomIndex(vertexes)]);
26
+ }
27
+ })
28
+ .add(`${THOUSAND.toLocaleString()} getEdge`, () => {
29
+ for (let i = 0; i < THOUSAND; i++) {
30
+ graph.getEdge(vertexes[getRandomIndex(vertexes)], vertexes[getRandomIndex(vertexes)]);
31
+ }
32
+ })
33
+ .add(`tarjan`, () => {
34
+ // for (let i = 0; i < THOUSAND; i++) {
35
+ graph.tarjan(true);
36
+ // }
37
+ })
38
+ .add(`tarjan all`, () => {
39
+ // for (let i = 0; i < THOUSAND; i++) {
40
+ graph.tarjan(true, true, true, true);
41
+ // }
42
+ })
43
+ .add(`topologicalSort`, () => {
44
+ // for (let i = 0; i < THOUSAND; i++) {
45
+ graph.topologicalSort('key');
46
+ // }
47
+ });
48
+
49
+ export {suite};
@@ -0,0 +1,30 @@
1
+ import {FibonacciHeap, Heap} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const {TEN_THOUSAND} = magnitude;
7
+
8
+ suite
9
+ .add(`${TEN_THOUSAND.toLocaleString()} add & pop`, () => {
10
+ const heap = new Heap<number>({comparator: (a, b) => b - a});
11
+
12
+ for (let i = 0; i < TEN_THOUSAND; i++) {
13
+ heap.add(i);
14
+ }
15
+
16
+ for (let i = 0; i < TEN_THOUSAND; i++) {
17
+ heap.pop();
18
+ }
19
+ })
20
+ .add(`${TEN_THOUSAND.toLocaleString()} fib add & pop`, () => {
21
+ const fbHeap = new FibonacciHeap<number>();
22
+ for (let i = 1; i <= TEN_THOUSAND; i++) {
23
+ fbHeap.push(i);
24
+ }
25
+ for (let i = 1; i <= TEN_THOUSAND; i++) {
26
+ fbHeap.pop();
27
+ }
28
+ });
29
+
30
+ export {suite};
@@ -0,0 +1,40 @@
1
+ import {DoublyLinkedList, DoublyLinkedListNode} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const {LINEAR} = magnitude;
7
+
8
+ suite
9
+ .add(`${LINEAR.toLocaleString()} unshift`, () => {
10
+ const list = new DoublyLinkedList<number>();
11
+
12
+ for (let i = 0; i < LINEAR; i++) {
13
+ list.unshift(i);
14
+ }
15
+ })
16
+ .add(`${LINEAR.toLocaleString()} unshift & shift`, () => {
17
+ const list = new DoublyLinkedList<number>();
18
+
19
+ for (let i = 0; i < LINEAR; i++) {
20
+ list.unshift(i);
21
+ }
22
+ for (let i = 0; i < LINEAR; i++) {
23
+ list.shift();
24
+ }
25
+ })
26
+ .add(`${LINEAR.toLocaleString()} insertBefore`, () => {
27
+ const doublyList = new DoublyLinkedList<number>();
28
+ let midNode: DoublyLinkedListNode | null = null;
29
+ const midIndex = Math.floor(LINEAR / 2);
30
+ for (let i = 0; i < LINEAR; i++) {
31
+ doublyList.push(i);
32
+ if (i === midIndex) {
33
+ midNode = doublyList.getNode(i);
34
+ } else if (i > midIndex && midNode) {
35
+ doublyList.insertBefore(midNode, i);
36
+ }
37
+ }
38
+ });
39
+
40
+ export {suite};
@@ -0,0 +1,34 @@
1
+ import {SinglyLinkedList, SinglyLinkedListNode} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const {TEN_THOUSAND} = magnitude;
7
+
8
+ suite
9
+ .add(`${TEN_THOUSAND.toLocaleString()} push & pop`, () => {
10
+ const list = new SinglyLinkedList<number>();
11
+
12
+ for (let i = 0; i < TEN_THOUSAND; i++) {
13
+ list.push(i);
14
+ }
15
+
16
+ for (let i = 0; i < TEN_THOUSAND; i++) {
17
+ list.pop();
18
+ }
19
+ })
20
+ .add(`${TEN_THOUSAND.toLocaleString()} insertBefore`, () => {
21
+ const singlyList = new SinglyLinkedList<number>();
22
+ let midSinglyNode: SinglyLinkedListNode | null = null;
23
+ const midIndex = Math.floor(TEN_THOUSAND / 2);
24
+ for (let i = 0; i < TEN_THOUSAND; i++) {
25
+ singlyList.push(i);
26
+ if (i === midIndex) {
27
+ midSinglyNode = singlyList.getNode(i);
28
+ } else if (i > midIndex && midSinglyNode) {
29
+ singlyList.insertBefore(midSinglyNode.value, i);
30
+ }
31
+ }
32
+ });
33
+
34
+ export {suite};
@@ -0,0 +1,19 @@
1
+ import {MaxPriorityQueue} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const {TEN_THOUSAND} = magnitude;
7
+
8
+ suite.add(`${TEN_THOUSAND.toLocaleString()} refill & poll`, () => {
9
+ const nodes = Array.from(
10
+ new Set<number>(Array.from(new Array(TEN_THOUSAND), () => Math.floor(Math.random() * TEN_THOUSAND * 100)))
11
+ );
12
+ const maxPQ = new MaxPriorityQueue<number>();
13
+ maxPQ.refill(nodes);
14
+ while (maxPQ.size > 0) {
15
+ maxPQ.poll();
16
+ }
17
+ });
18
+
19
+ export {suite};
@@ -0,0 +1,21 @@
1
+ import {Deque} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {magnitude} from '../../../utils';
4
+
5
+ export const suite = new Benchmark.Suite();
6
+ const {LINEAR} = magnitude;
7
+
8
+ suite
9
+ .add(`${LINEAR.toLocaleString()} push`, () => {
10
+ const deque = new Deque<number>();
11
+ for (let i = 0; i < LINEAR; i++) {
12
+ deque.push(i);
13
+ }
14
+ })
15
+ .add(`${LINEAR.toLocaleString()} shift`, () => {
16
+ const deque = new Deque<number>();
17
+ for (let i = 0; i < LINEAR; i++) {
18
+ deque.push(i);
19
+ deque.shift();
20
+ }
21
+ });
@@ -0,0 +1,25 @@
1
+ import {Queue} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const {LINEAR} = magnitude;
7
+
8
+ suite
9
+ .add(`${LINEAR.toLocaleString()} push`, () => {
10
+ const queue = new Queue<number>();
11
+
12
+ for (let i = 0; i < LINEAR; i++) {
13
+ queue.push(i);
14
+ }
15
+ })
16
+ .add(`${LINEAR.toLocaleString()} push & shift`, () => {
17
+ const queue = new Queue<number>();
18
+
19
+ for (let i = 0; i < LINEAR; i++) {
20
+ queue.push(i);
21
+ queue.shift();
22
+ }
23
+ });
24
+
25
+ export {suite};
@@ -0,0 +1,22 @@
1
+ import {Trie} from '../../../../src';
2
+ import * as Benchmark from 'benchmark';
3
+ import {getRandomWords, magnitude} from '../../../utils';
4
+
5
+ const suite = new Benchmark.Suite();
6
+ const {HUNDRED_THOUSAND} = magnitude;
7
+ const trie = new Trie();
8
+ const randomWords = getRandomWords(HUNDRED_THOUSAND, false);
9
+
10
+ suite
11
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} push`, () => {
12
+ for (let i = 0; i < randomWords.length; i++) {
13
+ trie.add(randomWords[i]);
14
+ }
15
+ })
16
+ .add(`${HUNDRED_THOUSAND.toLocaleString()} getWords`, () => {
17
+ for (let i = 0; i < randomWords.length; i++) {
18
+ trie.getWords(randomWords[i]);
19
+ }
20
+ });
21
+
22
+ export {suite};