data-structure-typed 1.53.0 → 1.53.2
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.
- package/CHANGELOG.md +1 -1
- package/benchmark/report.html +1 -37
- package/benchmark/report.json +23 -383
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +1 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +2 -2
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.js +5 -3
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.js +7 -3
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
- package/dist/mjs/constants/index.js +1 -0
- package/dist/mjs/constants/index.js.map +1 -0
- package/dist/mjs/data-structures/base/index.js +1 -0
- package/dist/mjs/data-structures/base/index.js.map +1 -0
- package/dist/mjs/data-structures/base/iterable-element-base.js +1 -0
- package/dist/mjs/data-structures/base/iterable-element-base.js.map +1 -0
- package/dist/mjs/data-structures/base/iterable-entry-base.js +1 -0
- package/dist/mjs/data-structures/base/iterable-entry-base.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js +2 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/avl-tree.js +2 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/binary-indexed-tree.js +1 -0
- package/dist/mjs/data-structures/binary-tree/binary-indexed-tree.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +3 -2
- package/dist/mjs/data-structures/binary-tree/binary-tree.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/bst.js +6 -3
- package/dist/mjs/data-structures/binary-tree/bst.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/index.js +1 -0
- package/dist/mjs/data-structures/binary-tree/index.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +8 -3
- package/dist/mjs/data-structures/binary-tree/rb-tree.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/segment-tree.js +1 -0
- package/dist/mjs/data-structures/binary-tree/segment-tree.js.map +1 -0
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.js +2 -1
- package/dist/mjs/data-structures/binary-tree/tree-multi-map.js.map +1 -0
- package/dist/mjs/data-structures/graph/abstract-graph.js +1 -0
- package/dist/mjs/data-structures/graph/abstract-graph.js.map +1 -0
- package/dist/mjs/data-structures/graph/directed-graph.js +1 -0
- package/dist/mjs/data-structures/graph/directed-graph.js.map +1 -0
- package/dist/mjs/data-structures/graph/index.js +1 -0
- package/dist/mjs/data-structures/graph/index.js.map +1 -0
- package/dist/mjs/data-structures/graph/map-graph.js +1 -0
- package/dist/mjs/data-structures/graph/map-graph.js.map +1 -0
- package/dist/mjs/data-structures/graph/undirected-graph.js +1 -0
- package/dist/mjs/data-structures/graph/undirected-graph.js.map +1 -0
- package/dist/mjs/data-structures/hash/hash-map.js +1 -0
- package/dist/mjs/data-structures/hash/hash-map.js.map +1 -0
- package/dist/mjs/data-structures/hash/index.js +1 -0
- package/dist/mjs/data-structures/hash/index.js.map +1 -0
- package/dist/mjs/data-structures/heap/heap.js +1 -0
- package/dist/mjs/data-structures/heap/heap.js.map +1 -0
- package/dist/mjs/data-structures/heap/index.js +1 -0
- package/dist/mjs/data-structures/heap/index.js.map +1 -0
- package/dist/mjs/data-structures/heap/max-heap.js +1 -0
- package/dist/mjs/data-structures/heap/max-heap.js.map +1 -0
- package/dist/mjs/data-structures/heap/min-heap.js +1 -0
- package/dist/mjs/data-structures/heap/min-heap.js.map +1 -0
- package/dist/mjs/data-structures/index.js +1 -0
- package/dist/mjs/data-structures/index.js.map +1 -0
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +1 -0
- package/dist/mjs/data-structures/linked-list/doubly-linked-list.js.map +1 -0
- package/dist/mjs/data-structures/linked-list/index.js +1 -0
- package/dist/mjs/data-structures/linked-list/index.js.map +1 -0
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js +1 -0
- package/dist/mjs/data-structures/linked-list/singly-linked-list.js.map +1 -0
- package/dist/mjs/data-structures/linked-list/skip-linked-list.js +1 -0
- package/dist/mjs/data-structures/linked-list/skip-linked-list.js.map +1 -0
- package/dist/mjs/data-structures/matrix/index.js +1 -0
- package/dist/mjs/data-structures/matrix/index.js.map +1 -0
- package/dist/mjs/data-structures/matrix/matrix.js +1 -0
- package/dist/mjs/data-structures/matrix/matrix.js.map +1 -0
- package/dist/mjs/data-structures/matrix/navigator.js +1 -0
- package/dist/mjs/data-structures/matrix/navigator.js.map +1 -0
- package/dist/mjs/data-structures/priority-queue/index.js +1 -0
- package/dist/mjs/data-structures/priority-queue/index.js.map +1 -0
- package/dist/mjs/data-structures/priority-queue/max-priority-queue.js +1 -0
- package/dist/mjs/data-structures/priority-queue/max-priority-queue.js.map +1 -0
- package/dist/mjs/data-structures/priority-queue/min-priority-queue.js +1 -0
- package/dist/mjs/data-structures/priority-queue/min-priority-queue.js.map +1 -0
- package/dist/mjs/data-structures/priority-queue/priority-queue.js +1 -0
- package/dist/mjs/data-structures/priority-queue/priority-queue.js.map +1 -0
- package/dist/mjs/data-structures/queue/deque.js +1 -0
- package/dist/mjs/data-structures/queue/deque.js.map +1 -0
- package/dist/mjs/data-structures/queue/index.js +1 -0
- package/dist/mjs/data-structures/queue/index.js.map +1 -0
- package/dist/mjs/data-structures/queue/queue.js +1 -0
- package/dist/mjs/data-structures/queue/queue.js.map +1 -0
- package/dist/mjs/data-structures/stack/index.js +1 -0
- package/dist/mjs/data-structures/stack/index.js.map +1 -0
- package/dist/mjs/data-structures/stack/stack.js +1 -0
- package/dist/mjs/data-structures/stack/stack.js.map +1 -0
- package/dist/mjs/data-structures/tree/index.js +1 -0
- package/dist/mjs/data-structures/tree/index.js.map +1 -0
- package/dist/mjs/data-structures/tree/tree.js +1 -0
- package/dist/mjs/data-structures/tree/tree.js.map +1 -0
- package/dist/mjs/data-structures/trie/index.js +1 -0
- package/dist/mjs/data-structures/trie/index.js.map +1 -0
- package/dist/mjs/data-structures/trie/trie.js +1 -0
- package/dist/mjs/data-structures/trie/trie.js.map +1 -0
- package/dist/mjs/index.js +1 -0
- package/dist/mjs/index.js.map +1 -0
- package/dist/mjs/interfaces/binary-tree.js +1 -0
- package/dist/mjs/interfaces/binary-tree.js.map +1 -0
- package/dist/mjs/interfaces/doubly-linked-list.js +1 -0
- package/dist/mjs/interfaces/doubly-linked-list.js.map +1 -0
- package/dist/mjs/interfaces/graph.js +1 -0
- package/dist/mjs/interfaces/graph.js.map +1 -0
- package/dist/mjs/interfaces/heap.js +1 -0
- package/dist/mjs/interfaces/heap.js.map +1 -0
- package/dist/mjs/interfaces/index.js +1 -0
- package/dist/mjs/interfaces/index.js.map +1 -0
- package/dist/mjs/interfaces/navigator.js +1 -0
- package/dist/mjs/interfaces/navigator.js.map +1 -0
- package/dist/mjs/interfaces/priority-queue.js +1 -0
- package/dist/mjs/interfaces/priority-queue.js.map +1 -0
- package/dist/mjs/interfaces/segment-tree.js +1 -0
- package/dist/mjs/interfaces/segment-tree.js.map +1 -0
- package/dist/mjs/interfaces/singly-linked-list.js +1 -0
- package/dist/mjs/interfaces/singly-linked-list.js.map +1 -0
- package/dist/mjs/types/common.js +1 -0
- package/dist/mjs/types/common.js.map +1 -0
- package/dist/mjs/types/data-structures/base/base.js +1 -0
- package/dist/mjs/types/data-structures/base/base.js.map +1 -0
- package/dist/mjs/types/data-structures/base/index.js +1 -0
- package/dist/mjs/types/data-structures/base/index.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/avl-tree-multi-map.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/avl-tree.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/avl-tree.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/binary-indexed-tree.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/binary-indexed-tree.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/bst.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/bst.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/index.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/index.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/segment-tree.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/segment-tree.js.map +1 -0
- package/dist/mjs/types/data-structures/binary-tree/tree-multi-map.js +1 -0
- package/dist/mjs/types/data-structures/binary-tree/tree-multi-map.js.map +1 -0
- package/dist/mjs/types/data-structures/graph/abstract-graph.js +1 -0
- package/dist/mjs/types/data-structures/graph/abstract-graph.js.map +1 -0
- package/dist/mjs/types/data-structures/graph/directed-graph.js +1 -0
- package/dist/mjs/types/data-structures/graph/directed-graph.js.map +1 -0
- package/dist/mjs/types/data-structures/graph/index.js +1 -0
- package/dist/mjs/types/data-structures/graph/index.js.map +1 -0
- package/dist/mjs/types/data-structures/graph/map-graph.js +1 -0
- package/dist/mjs/types/data-structures/graph/map-graph.js.map +1 -0
- package/dist/mjs/types/data-structures/graph/undirected-graph.js +1 -0
- package/dist/mjs/types/data-structures/graph/undirected-graph.js.map +1 -0
- package/dist/mjs/types/data-structures/hash/hash-map.js +1 -0
- package/dist/mjs/types/data-structures/hash/hash-map.js.map +1 -0
- package/dist/mjs/types/data-structures/hash/index.js +1 -0
- package/dist/mjs/types/data-structures/hash/index.js.map +1 -0
- package/dist/mjs/types/data-structures/heap/heap.js +1 -0
- package/dist/mjs/types/data-structures/heap/heap.js.map +1 -0
- package/dist/mjs/types/data-structures/heap/index.js +1 -0
- package/dist/mjs/types/data-structures/heap/index.js.map +1 -0
- package/dist/mjs/types/data-structures/heap/max-heap.js +1 -0
- package/dist/mjs/types/data-structures/heap/max-heap.js.map +1 -0
- package/dist/mjs/types/data-structures/heap/min-heap.js +1 -0
- package/dist/mjs/types/data-structures/heap/min-heap.js.map +1 -0
- package/dist/mjs/types/data-structures/index.js +1 -0
- package/dist/mjs/types/data-structures/index.js.map +1 -0
- package/dist/mjs/types/data-structures/linked-list/doubly-linked-list.js +1 -0
- package/dist/mjs/types/data-structures/linked-list/doubly-linked-list.js.map +1 -0
- package/dist/mjs/types/data-structures/linked-list/index.js +1 -0
- package/dist/mjs/types/data-structures/linked-list/index.js.map +1 -0
- package/dist/mjs/types/data-structures/linked-list/singly-linked-list.js +1 -0
- package/dist/mjs/types/data-structures/linked-list/singly-linked-list.js.map +1 -0
- package/dist/mjs/types/data-structures/linked-list/skip-linked-list.js +1 -0
- package/dist/mjs/types/data-structures/linked-list/skip-linked-list.js.map +1 -0
- package/dist/mjs/types/data-structures/matrix/index.js +1 -0
- package/dist/mjs/types/data-structures/matrix/index.js.map +1 -0
- package/dist/mjs/types/data-structures/matrix/matrix.js +1 -0
- package/dist/mjs/types/data-structures/matrix/matrix.js.map +1 -0
- package/dist/mjs/types/data-structures/matrix/navigator.js +1 -0
- package/dist/mjs/types/data-structures/matrix/navigator.js.map +1 -0
- package/dist/mjs/types/data-structures/priority-queue/index.js +1 -0
- package/dist/mjs/types/data-structures/priority-queue/index.js.map +1 -0
- package/dist/mjs/types/data-structures/priority-queue/max-priority-queue.js +1 -0
- package/dist/mjs/types/data-structures/priority-queue/max-priority-queue.js.map +1 -0
- package/dist/mjs/types/data-structures/priority-queue/min-priority-queue.js +1 -0
- package/dist/mjs/types/data-structures/priority-queue/min-priority-queue.js.map +1 -0
- package/dist/mjs/types/data-structures/priority-queue/priority-queue.js +1 -0
- package/dist/mjs/types/data-structures/priority-queue/priority-queue.js.map +1 -0
- package/dist/mjs/types/data-structures/queue/deque.js +1 -0
- package/dist/mjs/types/data-structures/queue/deque.js.map +1 -0
- package/dist/mjs/types/data-structures/queue/index.js +1 -0
- package/dist/mjs/types/data-structures/queue/index.js.map +1 -0
- package/dist/mjs/types/data-structures/queue/queue.js +1 -0
- package/dist/mjs/types/data-structures/queue/queue.js.map +1 -0
- package/dist/mjs/types/data-structures/stack/index.js +1 -0
- package/dist/mjs/types/data-structures/stack/index.js.map +1 -0
- package/dist/mjs/types/data-structures/stack/stack.js +1 -0
- package/dist/mjs/types/data-structures/stack/stack.js.map +1 -0
- package/dist/mjs/types/data-structures/tree/index.js +1 -0
- package/dist/mjs/types/data-structures/tree/index.js.map +1 -0
- package/dist/mjs/types/data-structures/tree/tree.js +1 -0
- package/dist/mjs/types/data-structures/tree/tree.js.map +1 -0
- package/dist/mjs/types/data-structures/trie/index.js +1 -0
- package/dist/mjs/types/data-structures/trie/index.js.map +1 -0
- package/dist/mjs/types/data-structures/trie/trie.js +1 -0
- package/dist/mjs/types/data-structures/trie/trie.js.map +1 -0
- package/dist/mjs/types/index.js +1 -0
- package/dist/mjs/types/index.js.map +1 -0
- package/dist/mjs/types/utils/index.js +1 -0
- package/dist/mjs/types/utils/index.js.map +1 -0
- package/dist/mjs/types/utils/utils.js +1 -0
- package/dist/mjs/types/utils/utils.js.map +1 -0
- package/dist/mjs/types/utils/validate-type.js +1 -0
- package/dist/mjs/types/utils/validate-type.js.map +1 -0
- package/dist/mjs/utils/index.js +1 -0
- package/dist/mjs/utils/index.js.map +1 -0
- package/dist/mjs/utils/number.js +1 -0
- package/dist/mjs/utils/number.js.map +1 -0
- package/dist/mjs/utils/utils.js +1 -0
- package/dist/mjs/utils/utils.js.map +1 -0
- package/dist/umd/data-structure-typed.js +16 -10
- package/dist/umd/data-structure-typed.min.js +2 -2
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +7 -6
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +1 -1
- package/src/data-structures/binary-tree/avl-tree.ts +1 -1
- package/src/data-structures/binary-tree/binary-tree.ts +2 -2
- package/src/data-structures/binary-tree/bst.ts +4 -3
- package/src/data-structures/binary-tree/rb-tree.ts +7 -2
- package/src/data-structures/binary-tree/tree-multi-map.ts +1 -1
- package/src/types/data-structures/binary-tree/binary-tree.ts +3 -3
- package/src/types/data-structures/binary-tree/bst.ts +1 -1
- package/test/performance/data-structures/binary-tree/avl-tree.test.ts +1 -1
- package/test/performance/data-structures/binary-tree/binary-tree-overall.test.ts +2 -2
- package/test/performance/data-structures/binary-tree/binary-tree.test.ts +1 -1
- package/test/performance/data-structures/binary-tree/bst.test.ts +1 -1
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +9 -1
- package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +8 -8
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +28 -9
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +36 -22
- package/test/unit/data-structures/binary-tree/bst.test.ts +33 -14
- package/test/unit/data-structures/binary-tree/rb-tree.test.ts +19 -0
- package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +11 -11
- package/test/unit/data-structures/graph/directed-graph.test.ts +14 -0
- package/test/utils/array.ts +15 -12
- package/tsconfig-mjs.json +1 -1
|
@@ -182,6 +182,25 @@ describe('RedBlackTree 1', () => {
|
|
|
182
182
|
expect(rbTree.size).toBe(4);
|
|
183
183
|
expect(cloned.size).toBe(3);
|
|
184
184
|
});
|
|
185
|
+
|
|
186
|
+
it('should replace value', () => {
|
|
187
|
+
const tree = new RedBlackTree<number, string>([4, 5, [1, '1'], 2, 3], { isMapMode: false });
|
|
188
|
+
expect(tree.get(1)).toBe('1');
|
|
189
|
+
expect(tree.getNode(1)?.value).toBe('1');
|
|
190
|
+
tree.add(1, 'a');
|
|
191
|
+
expect(tree.get(1)).toBe('a');
|
|
192
|
+
tree.add([1, 'b']);
|
|
193
|
+
expect(tree.getNode(1)?.value).toBe('b');
|
|
194
|
+
expect(tree.get(1)).toBe('b');
|
|
195
|
+
const treeMap = new RedBlackTree<number>([4, 5, [1, '1'], 2, 3]);
|
|
196
|
+
expect(treeMap.get(1)).toBe('1');
|
|
197
|
+
expect(treeMap.getNode(1)?.value).toBe(undefined);
|
|
198
|
+
treeMap.add(1, 'a');
|
|
199
|
+
expect(treeMap.get(1)).toBe('a');
|
|
200
|
+
treeMap.add([1, 'b']);
|
|
201
|
+
expect(treeMap.getNode(1)?.value).toBe(undefined);
|
|
202
|
+
expect(treeMap.get(1)).toBe('b');
|
|
203
|
+
});
|
|
185
204
|
});
|
|
186
205
|
|
|
187
206
|
describe('RedBlackTree 2', () => {
|
|
@@ -133,7 +133,7 @@ describe('TreeMultiMap operations test1', () => {
|
|
|
133
133
|
const nodeId10 = tmm.getNode(10);
|
|
134
134
|
expect(nodeId10?.key).toBe(10);
|
|
135
135
|
|
|
136
|
-
const nodeVal9 = tmm.getNode(node => node.
|
|
136
|
+
const nodeVal9 = tmm.getNode(node => node.key === 9);
|
|
137
137
|
expect(nodeVal9?.key).toBe(9);
|
|
138
138
|
|
|
139
139
|
const nodesByCount1 = tmm.getNodes(node => node.count === 1);
|
|
@@ -391,7 +391,7 @@ describe('TreeMultiMap operations test recursively1', () => {
|
|
|
391
391
|
const nodeId10 = tmm.getNode(10);
|
|
392
392
|
expect(nodeId10?.key).toBe(10);
|
|
393
393
|
|
|
394
|
-
const nodeVal9 = tmm.getNode(node => node.
|
|
394
|
+
const nodeVal9 = tmm.getNode(node => node.key === 9);
|
|
395
395
|
expect(nodeVal9?.key).toBe(9);
|
|
396
396
|
|
|
397
397
|
const nodesByCount1 = tmm.getNodes(node => node.count === 1);
|
|
@@ -837,10 +837,10 @@ describe('TreeMultiMap iterative methods test', () => {
|
|
|
837
837
|
});
|
|
838
838
|
});
|
|
839
839
|
|
|
840
|
-
describe('TreeMultiMap count map mode', () => {
|
|
840
|
+
describe('TreeMultiMap count not map mode', () => {
|
|
841
841
|
let tmm: TreeMultiMap<number>;
|
|
842
842
|
beforeEach(() => {
|
|
843
|
-
tmm = new TreeMultiMap<number>([], { isMapMode:
|
|
843
|
+
tmm = new TreeMultiMap<number>([], { isMapMode: false });
|
|
844
844
|
});
|
|
845
845
|
|
|
846
846
|
it('Should added node count ', () => {
|
|
@@ -860,9 +860,9 @@ describe('TreeMultiMap count map mode', () => {
|
|
|
860
860
|
});
|
|
861
861
|
});
|
|
862
862
|
|
|
863
|
-
describe('TreeMultiMap operations test1 map mode', () => {
|
|
863
|
+
describe('TreeMultiMap operations test1 not map mode', () => {
|
|
864
864
|
it('should perform various operations on a Binary Search Tree with numeric values1', () => {
|
|
865
|
-
const tmm = new TreeMultiMap<number, number>([], { isMapMode:
|
|
865
|
+
const tmm = new TreeMultiMap<number, number>([], { isMapMode: false });
|
|
866
866
|
|
|
867
867
|
expect(tmm instanceof TreeMultiMap);
|
|
868
868
|
|
|
@@ -907,11 +907,11 @@ describe('TreeMultiMap operations test1 map mode', () => {
|
|
|
907
907
|
});
|
|
908
908
|
});
|
|
909
909
|
|
|
910
|
-
describe('TreeMultiMap operations test recursively1 map mode', () => {
|
|
910
|
+
describe('TreeMultiMap operations test recursively1 not map mode', () => {
|
|
911
911
|
it('should perform various operations on a Binary Search Tree with numeric values1', () => {
|
|
912
912
|
const tmm = new TreeMultiMap<number>([], {
|
|
913
913
|
iterationType: 'RECURSIVE',
|
|
914
|
-
isMapMode:
|
|
914
|
+
isMapMode: false
|
|
915
915
|
});
|
|
916
916
|
|
|
917
917
|
expect(tmm instanceof TreeMultiMap);
|
|
@@ -956,10 +956,10 @@ describe('TreeMultiMap operations test recursively1 map mode', () => {
|
|
|
956
956
|
});
|
|
957
957
|
});
|
|
958
958
|
|
|
959
|
-
describe('TreeMultiMap iterative methods
|
|
959
|
+
describe('TreeMultiMap iterative methods test not map mode', () => {
|
|
960
960
|
let treeMM: TreeMultiMap<number, string>;
|
|
961
961
|
beforeEach(() => {
|
|
962
|
-
treeMM = new TreeMultiMap<number, string>([], { isMapMode:
|
|
962
|
+
treeMM = new TreeMultiMap<number, string>([], { isMapMode: false });
|
|
963
963
|
treeMM.add(1, 'a', 10);
|
|
964
964
|
treeMM.add([2, 'b'], undefined, 10);
|
|
965
965
|
treeMM.add([3, 'c'], undefined, 1);
|
|
@@ -970,6 +970,6 @@ describe('TreeMultiMap iterative methods testm ap mode', () => {
|
|
|
970
970
|
expect(treeMM.getComputedCount()).toBe(21);
|
|
971
971
|
const cloned = treeMM.clone();
|
|
972
972
|
expect(cloned.root?.left?.key).toBe(1);
|
|
973
|
-
expect(cloned.get(cloned.root?.right)).toBe(
|
|
973
|
+
expect(cloned.get(cloned.root?.right)).toBe(undefined);
|
|
974
974
|
});
|
|
975
975
|
});
|
|
@@ -1035,4 +1035,18 @@ describe('delete', () => {
|
|
|
1035
1035
|
// even though A no longer has any knowledge of C linking to it.
|
|
1036
1036
|
expect(graph.outgoingEdgesOf('C').map(e => e.dest)).toEqual(['A']);
|
|
1037
1037
|
});
|
|
1038
|
+
|
|
1039
|
+
// it('should print', () => {
|
|
1040
|
+
// const graph = new DirectedGraph();
|
|
1041
|
+
// graph.addVertex('A');
|
|
1042
|
+
// graph.addVertex('B');
|
|
1043
|
+
// graph.addVertex('C');
|
|
1044
|
+
//
|
|
1045
|
+
// graph.addEdge('A', 'B');
|
|
1046
|
+
// graph.addEdge('A', 'C');
|
|
1047
|
+
// graph.addEdge('B', 'C');
|
|
1048
|
+
// graph.addEdge('C', 'B');
|
|
1049
|
+
// graph.print();
|
|
1050
|
+
//
|
|
1051
|
+
// })
|
|
1038
1052
|
});
|
package/test/utils/array.ts
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { getRandomInt } from './number';
|
|
2
2
|
|
|
3
|
-
export function getRandomIntArray(length: number = 1000, min: number = -1000, max: number = 1000,
|
|
4
|
-
if (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
while (ans.length < length) {
|
|
8
|
-
const num = getRandomInt(min, max);
|
|
9
|
-
if (!set.has(num)) {
|
|
10
|
-
ans.push(num);
|
|
11
|
-
set.add(num);
|
|
12
|
-
}
|
|
3
|
+
export function getRandomIntArray(length: number = 1000, min: number = -1000, max: number = 1000, unique = true) {
|
|
4
|
+
if (unique) {
|
|
5
|
+
if (max - min + 1 < length) {
|
|
6
|
+
throw new Error('Range too small for unique values with the specified length');
|
|
13
7
|
}
|
|
14
|
-
|
|
8
|
+
|
|
9
|
+
const allNumbers = Array.from({ length: max - min + 1 }, (_, i) => i + min);
|
|
10
|
+
|
|
11
|
+
for (let i = allNumbers.length - 1; i > 0; i--) {
|
|
12
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
13
|
+
[allNumbers[i], allNumbers[j]] = [allNumbers[j], allNumbers[i]];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return allNumbers.slice(0, length);
|
|
17
|
+
} else {
|
|
18
|
+
return Array.from({ length }, () => Math.floor(Math.random() * (max - min + 1)) + min);
|
|
15
19
|
}
|
|
16
|
-
return new Array<number>(length).fill(0).map(() => getRandomInt(min, max));
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
const words = [
|