data-structure-typed 1.39.0 → 1.39.1
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/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +2 -2
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +86 -32
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +8 -8
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +6 -6
- package/dist/cjs/data-structures/binary-tree/bst.js +2 -2
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/data-structures/binary-tree/tree-multiset.d.ts +2 -2
- package/dist/cjs/data-structures/binary-tree/tree-multiset.js.map +1 -1
- package/dist/cjs/data-structures/graph/abstract-graph.d.ts +1 -1
- package/dist/cjs/data-structures/graph/abstract-graph.js +1 -1
- package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/map-graph.d.ts +1 -1
- package/dist/cjs/data-structures/graph/map-graph.js +1 -1
- package/dist/cjs/data-structures/graph/map-graph.js.map +1 -1
- package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
- package/dist/cjs/data-structures/hash/tree-map.js.map +1 -1
- package/dist/cjs/data-structures/hash/tree-set.js.map +1 -1
- package/dist/cjs/data-structures/heap/heap.js.map +1 -1
- package/dist/cjs/data-structures/heap/max-heap.js.map +1 -1
- package/dist/cjs/data-structures/heap/min-heap.js.map +1 -1
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/cjs/data-structures/matrix/matrix.js.map +1 -1
- package/dist/cjs/data-structures/matrix/matrix2d.d.ts +1 -2
- package/dist/cjs/data-structures/matrix/matrix2d.js +3 -7
- package/dist/cjs/data-structures/matrix/matrix2d.js.map +1 -1
- package/dist/cjs/data-structures/matrix/vector2d.d.ts +0 -1
- package/dist/cjs/data-structures/matrix/vector2d.js +0 -1
- package/dist/cjs/data-structures/matrix/vector2d.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/priority-queue/priority-queue.js.map +1 -1
- package/dist/cjs/data-structures/queue/deque.js.map +1 -1
- package/dist/cjs/data-structures/queue/queue.js.map +1 -1
- package/dist/cjs/interfaces/binary-tree.d.ts +2 -2
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +0 -2
- package/dist/cjs/types/helpers.d.ts +1 -4
- package/dist/cjs/types/helpers.js.map +1 -1
- package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +2 -2
- package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +86 -32
- package/dist/mjs/data-structures/binary-tree/binary-tree.js +8 -8
- package/dist/mjs/data-structures/binary-tree/bst.d.ts +6 -6
- package/dist/mjs/data-structures/binary-tree/bst.js +2 -2
- package/dist/mjs/data-structures/binary-tree/tree-multiset.d.ts +2 -2
- package/dist/mjs/data-structures/graph/abstract-graph.d.ts +1 -1
- package/dist/mjs/data-structures/graph/abstract-graph.js +1 -1
- package/dist/mjs/data-structures/graph/map-graph.d.ts +1 -1
- package/dist/mjs/data-structures/graph/map-graph.js +1 -1
- package/dist/mjs/data-structures/matrix/matrix2d.d.ts +1 -2
- package/dist/mjs/data-structures/matrix/matrix2d.js +3 -7
- package/dist/mjs/data-structures/matrix/vector2d.d.ts +0 -1
- package/dist/mjs/data-structures/matrix/vector2d.js +0 -1
- package/dist/mjs/interfaces/binary-tree.d.ts +2 -2
- package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +0 -2
- package/dist/mjs/types/helpers.d.ts +1 -4
- package/dist/umd/data-structure-typed.min.js +1 -1
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +5 -5
- package/src/data-structures/binary-tree/avl-tree.ts +5 -4
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +1 -1
- package/src/data-structures/binary-tree/binary-tree.ts +37 -93
- package/src/data-structures/binary-tree/bst.ts +11 -17
- package/src/data-structures/binary-tree/rb-tree.ts +2 -1
- package/src/data-structures/binary-tree/tree-multiset.ts +4 -3
- package/src/data-structures/graph/abstract-graph.ts +12 -11
- package/src/data-structures/graph/directed-graph.ts +2 -1
- package/src/data-structures/graph/map-graph.ts +2 -2
- package/src/data-structures/graph/undirected-graph.ts +5 -4
- package/src/data-structures/hash/hash-map.ts +1 -1
- package/src/data-structures/hash/tree-map.ts +1 -2
- package/src/data-structures/hash/tree-set.ts +1 -2
- package/src/data-structures/heap/heap.ts +2 -2
- package/src/data-structures/heap/max-heap.ts +1 -1
- package/src/data-structures/heap/min-heap.ts +1 -1
- package/src/data-structures/linked-list/singly-linked-list.ts +1 -1
- package/src/data-structures/matrix/matrix.ts +1 -1
- package/src/data-structures/matrix/matrix2d.ts +1 -3
- package/src/data-structures/matrix/vector2d.ts +1 -4
- package/src/data-structures/priority-queue/max-priority-queue.ts +1 -1
- package/src/data-structures/priority-queue/min-priority-queue.ts +1 -1
- package/src/data-structures/priority-queue/priority-queue.ts +1 -1
- package/src/data-structures/queue/deque.ts +4 -5
- package/src/data-structures/queue/queue.ts +1 -1
- package/src/interfaces/binary-tree.ts +2 -2
- package/src/types/data-structures/binary-tree/binary-tree.ts +0 -4
- package/src/types/data-structures/matrix/navigator.ts +1 -1
- package/src/types/helpers.ts +1 -7
- package/src/types/utils/utils.ts +1 -1
- package/src/types/utils/validate-type.ts +2 -2
- package/test/integration/bst.test.ts +1 -1
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +142 -2
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +270 -48
- package/test/unit/data-structures/binary-tree/bst.test.ts +394 -4
- package/test/unit/data-structures/binary-tree/overall.test.ts +1 -1
- package/test/unit/data-structures/binary-tree/rb-tree.test.ts +73 -7
- package/test/unit/data-structures/binary-tree/tree-multiset.test.ts +242 -187
- package/test/unit/data-structures/graph/directed-graph.test.ts +34 -4
- package/test/unit/data-structures/graph/map-graph.test.ts +82 -1
- package/test/unit/data-structures/graph/undirected-graph.test.ts +82 -0
- package/test/unit/data-structures/heap/heap.test.ts +2 -2
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +1 -1
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +3 -3
- package/test/unit/data-structures/matrix/matrix2d.test.ts +207 -0
- package/test/unit/data-structures/matrix/navigator.test.ts +166 -1
- package/test/unit/data-structures/matrix/vector2d.test.ts +171 -0
- package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +2 -2
- package/test/unit/data-structures/queue/deque.test.ts +264 -1
- package/test/unit/data-structures/queue/queue.test.ts +3 -1
- package/test/utils/big-o.ts +1 -1
|
@@ -17,7 +17,7 @@ describe('MaxPriorityQueue Operation Test', () => {
|
|
|
17
17
|
});
|
|
18
18
|
|
|
19
19
|
it('should add elements and maintain heap property in a object MaxPriorityQueue', () => {
|
|
20
|
-
const priorityQueue = new MaxPriorityQueue<{
|
|
20
|
+
const priorityQueue = new MaxPriorityQueue<{keyA: number}>({comparator: (a, b) => b.keyA - a.keyA});
|
|
21
21
|
priorityQueue.refill([{keyA: 5}, {keyA: 3}, {keyA: 1}]);
|
|
22
22
|
priorityQueue.add({keyA: 7});
|
|
23
23
|
|
|
@@ -64,7 +64,7 @@ describe('MaxPriorityQueue Operation Test', () => {
|
|
|
64
64
|
|
|
65
65
|
it('should correctly heapify an object array', () => {
|
|
66
66
|
const nodes = [{keyA: 5}, {keyA: 3}, {keyA: 7}, {keyA: 1}];
|
|
67
|
-
const maxPQ = MaxPriorityQueue.heapify<{
|
|
67
|
+
const maxPQ = MaxPriorityQueue.heapify<{keyA: number}>({nodes: nodes, comparator: (a, b) => b.keyA - a.keyA});
|
|
68
68
|
|
|
69
69
|
expect(maxPQ.poll()?.keyA).toBe(7);
|
|
70
70
|
expect(maxPQ.poll()?.keyA).toBe(5);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import {ArrayDeque, Deque, ObjectDeque} from '../../../../src';
|
|
2
2
|
import {bigO} from '../../../utils';
|
|
3
|
+
import {isDebugTest} from '../../../config';
|
|
3
4
|
|
|
5
|
+
const isDebug = isDebugTest;
|
|
4
6
|
describe('Deque Tests', () => {
|
|
5
7
|
// Test cases for the Deque class (DoublyLinkedList-based)
|
|
6
8
|
describe('Deque (DoublyLinkedList-based)', () => {
|
|
@@ -141,7 +143,268 @@ describe('Deque Performance Test', () => {
|
|
|
141
143
|
for (let i = 0; i < dataSize; i++) {
|
|
142
144
|
queue.pop();
|
|
143
145
|
}
|
|
144
|
-
console.log(`Queue Deque Test: ${performance.now() - startTime} ms`);
|
|
146
|
+
isDebug && console.log(`Queue Deque Test: ${performance.now() - startTime} ms`);
|
|
145
147
|
expect(performance.now() - startTime).toBeLessThan(bigO.LINEAR * 100);
|
|
146
148
|
});
|
|
147
149
|
});
|
|
150
|
+
|
|
151
|
+
describe('Deque', () => {
|
|
152
|
+
let deque: Deque<number>;
|
|
153
|
+
|
|
154
|
+
beforeEach(() => {
|
|
155
|
+
deque = new Deque<number>();
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
test('should initialize an empty deque', () => {
|
|
159
|
+
expect(deque.size).toBe(0);
|
|
160
|
+
expect(deque.isEmpty()).toBe(true);
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
test('should add elements to the front and back', () => {
|
|
164
|
+
deque.addFirst(1);
|
|
165
|
+
deque.addLast(2);
|
|
166
|
+
|
|
167
|
+
expect(deque.size).toBe(2);
|
|
168
|
+
expect(deque.peekFirst()).toBe(1);
|
|
169
|
+
expect(deque.peekLast()).toBe(2);
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
test('should remove elements from the front and back', () => {
|
|
173
|
+
deque.addFirst(1);
|
|
174
|
+
deque.addLast(2);
|
|
175
|
+
|
|
176
|
+
const firstElement = deque.pollFirst();
|
|
177
|
+
const lastElement = deque.pollLast();
|
|
178
|
+
|
|
179
|
+
expect(deque.size).toBe(0);
|
|
180
|
+
expect(firstElement).toBe(1);
|
|
181
|
+
expect(lastElement).toBe(2);
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
test('should get elements by index', () => {
|
|
185
|
+
deque.addLast(1);
|
|
186
|
+
deque.addLast(2);
|
|
187
|
+
deque.addLast(3);
|
|
188
|
+
|
|
189
|
+
expect(deque.getAt(0)).toBe(1);
|
|
190
|
+
expect(deque.getAt(1)).toBe(2);
|
|
191
|
+
expect(deque.getAt(2)).toBe(3);
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
test('should return null for out-of-bounds index', () => {
|
|
195
|
+
expect(deque.getAt(0)).toBe(undefined);
|
|
196
|
+
expect(deque.getAt(1)).toBe(undefined);
|
|
197
|
+
expect(deque.getAt(-1)).toBe(undefined);
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
test('should check if the deque is empty', () => {
|
|
201
|
+
expect(deque.isEmpty()).toBe(true);
|
|
202
|
+
|
|
203
|
+
deque.addLast(1);
|
|
204
|
+
expect(deque.isEmpty()).toBe(false);
|
|
205
|
+
|
|
206
|
+
deque.pollFirst();
|
|
207
|
+
expect(deque.isEmpty()).toBe(true);
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
describe('ArrayDeque', () => {
|
|
212
|
+
let deque: ArrayDeque<number>;
|
|
213
|
+
|
|
214
|
+
beforeEach(() => {
|
|
215
|
+
deque = new ArrayDeque<number>();
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
test('should initialize an empty deque', () => {
|
|
219
|
+
expect(deque.size).toBe(0);
|
|
220
|
+
expect(deque.isEmpty()).toBe(true);
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
test('should add elements to the front and back', () => {
|
|
224
|
+
deque.addFirst(1);
|
|
225
|
+
deque.addLast(2);
|
|
226
|
+
|
|
227
|
+
expect(deque.size).toBe(2);
|
|
228
|
+
expect(deque.peekFirst()).toBe(1);
|
|
229
|
+
expect(deque.peekLast()).toBe(2);
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
test('should remove elements from the front and back', () => {
|
|
233
|
+
deque.addFirst(1);
|
|
234
|
+
deque.addLast(2);
|
|
235
|
+
|
|
236
|
+
const firstElement = deque.pollFirst();
|
|
237
|
+
const lastElement = deque.pollLast();
|
|
238
|
+
|
|
239
|
+
expect(deque.size).toBe(0);
|
|
240
|
+
expect(firstElement).toBe(1);
|
|
241
|
+
expect(lastElement).toBe(2);
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
test('should get elements by index', () => {
|
|
245
|
+
deque.addLast(1);
|
|
246
|
+
deque.addLast(2);
|
|
247
|
+
deque.addLast(3);
|
|
248
|
+
|
|
249
|
+
expect(deque.get(0)).toBe(1);
|
|
250
|
+
expect(deque.get(1)).toBe(2);
|
|
251
|
+
expect(deque.get(2)).toBe(3);
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
test('should return null for out-of-bounds index', () => {
|
|
255
|
+
expect(deque.get(0)).toBe(null);
|
|
256
|
+
expect(deque.get(1)).toBe(null);
|
|
257
|
+
expect(deque.get(-1)).toBe(null);
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
test('should check if the deque is empty', () => {
|
|
261
|
+
expect(deque.isEmpty()).toBe(true);
|
|
262
|
+
|
|
263
|
+
deque.addLast(1);
|
|
264
|
+
expect(deque.isEmpty()).toBe(false);
|
|
265
|
+
|
|
266
|
+
deque.pollFirst();
|
|
267
|
+
expect(deque.isEmpty()).toBe(true);
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
test('should set elements at a specific index', () => {
|
|
271
|
+
deque.addLast(1);
|
|
272
|
+
deque.addLast(2);
|
|
273
|
+
deque.addLast(3);
|
|
274
|
+
|
|
275
|
+
deque.set(1, 4);
|
|
276
|
+
|
|
277
|
+
expect(deque.get(0)).toBe(1);
|
|
278
|
+
expect(deque.get(1)).toBe(4);
|
|
279
|
+
expect(deque.get(2)).toBe(3);
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
test('should insert elements at a specific index', () => {
|
|
283
|
+
deque.addLast(1);
|
|
284
|
+
deque.addLast(2);
|
|
285
|
+
deque.addLast(3);
|
|
286
|
+
|
|
287
|
+
deque.insert(1, 4);
|
|
288
|
+
|
|
289
|
+
expect(deque.size).toBe(4);
|
|
290
|
+
expect(deque.get(0)).toBe(1);
|
|
291
|
+
expect(deque.get(1)).toBe(4);
|
|
292
|
+
expect(deque.get(2)).toBe(2);
|
|
293
|
+
expect(deque.get(3)).toBe(3);
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
test('should delete elements at a specific index', () => {
|
|
297
|
+
deque.addLast(1);
|
|
298
|
+
deque.addLast(2);
|
|
299
|
+
deque.addLast(3);
|
|
300
|
+
|
|
301
|
+
const deletedElement = deque.delete(1);
|
|
302
|
+
|
|
303
|
+
expect(deque.size).toBe(2);
|
|
304
|
+
expect(deletedElement[0]).toBe(2);
|
|
305
|
+
expect(deque.get(0)).toBe(1);
|
|
306
|
+
expect(deque.get(1)).toBe(3);
|
|
307
|
+
});
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
describe('ObjectDeque', () => {
|
|
311
|
+
let deque: ObjectDeque<number>;
|
|
312
|
+
|
|
313
|
+
beforeEach(() => {
|
|
314
|
+
deque = new ObjectDeque<number>();
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
test('should add elements to the front of the deque', () => {
|
|
318
|
+
deque.addFirst(1);
|
|
319
|
+
deque.addFirst(2);
|
|
320
|
+
|
|
321
|
+
expect(deque.size).toBe(2);
|
|
322
|
+
expect(deque.peekFirst()).toBe(2);
|
|
323
|
+
expect(deque.peekLast()).toBe(1);
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
test('should add elements to the end of the deque', () => {
|
|
327
|
+
deque.addLast(1);
|
|
328
|
+
deque.addLast(2);
|
|
329
|
+
|
|
330
|
+
expect(deque.size).toBe(2);
|
|
331
|
+
expect(deque.peekFirst()).toBe(1);
|
|
332
|
+
expect(deque.peekLast()).toBe(2);
|
|
333
|
+
});
|
|
334
|
+
|
|
335
|
+
test('should remove elements from the front of the deque', () => {
|
|
336
|
+
deque.addLast(1);
|
|
337
|
+
deque.addLast(2);
|
|
338
|
+
|
|
339
|
+
const removedElement = deque.pollFirst();
|
|
340
|
+
|
|
341
|
+
expect(deque.size).toBe(1);
|
|
342
|
+
expect(removedElement).toBe(1);
|
|
343
|
+
expect(deque.peekFirst()).toBe(2);
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
test('should remove elements from the end of the deque', () => {
|
|
347
|
+
deque.addLast(1);
|
|
348
|
+
deque.addLast(2);
|
|
349
|
+
|
|
350
|
+
const removedElement = deque.pollFirst();
|
|
351
|
+
|
|
352
|
+
expect(deque.size).toBe(1);
|
|
353
|
+
expect(removedElement).toBe(1);
|
|
354
|
+
expect(deque.peekLast()).toBe(2);
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
test('should return the element at the front of the deque without removing it', () => {
|
|
358
|
+
deque.addFirst(1);
|
|
359
|
+
deque.addFirst(2);
|
|
360
|
+
|
|
361
|
+
expect(deque.peekFirst()).toBe(2);
|
|
362
|
+
expect(deque.size).toBe(2);
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
test('should return the element at the end of the deque without removing it', () => {
|
|
366
|
+
deque.addLast(1);
|
|
367
|
+
deque.addLast(2);
|
|
368
|
+
|
|
369
|
+
expect(deque.peekLast()).toBe(2);
|
|
370
|
+
expect(deque.size).toBe(2);
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
test('should return the correct size of the deque', () => {
|
|
374
|
+
deque.addFirst(1);
|
|
375
|
+
deque.addLast(2);
|
|
376
|
+
deque.addLast(3);
|
|
377
|
+
|
|
378
|
+
expect(deque.size).toBe(3);
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
test('should check if the deque is empty', () => {
|
|
382
|
+
expect(deque.isEmpty()).toBe(true);
|
|
383
|
+
|
|
384
|
+
deque.addFirst(1);
|
|
385
|
+
|
|
386
|
+
expect(deque.isEmpty()).toBe(false);
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
test('should set elements at a specific index', () => {
|
|
390
|
+
deque.addFirst(1);
|
|
391
|
+
deque.addLast(2);
|
|
392
|
+
deque.addLast(3);
|
|
393
|
+
|
|
394
|
+
expect(deque.peekFirst()).toBe(1);
|
|
395
|
+
expect(deque.get(1)).toBe(2);
|
|
396
|
+
expect(deque.peekLast()).toBe(3);
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
test('should insert elements at a specific index', () => {
|
|
400
|
+
deque.addFirst(1);
|
|
401
|
+
deque.addLast(2);
|
|
402
|
+
deque.addLast(3);
|
|
403
|
+
|
|
404
|
+
expect(deque.size).toBe(3);
|
|
405
|
+
expect(deque.peekFirst()).toBe(1);
|
|
406
|
+
expect(deque.get(1)).toBe(2);
|
|
407
|
+
expect(deque.get(2)).toBe(3);
|
|
408
|
+
expect(deque.peekLast()).toBe(3);
|
|
409
|
+
});
|
|
410
|
+
});
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import {LinkedListQueue, Queue} from '../../../../src';
|
|
2
2
|
import {bigO, magnitude} from '../../../utils';
|
|
3
|
+
import {isDebugTest} from '../../../config';
|
|
3
4
|
|
|
5
|
+
const isDebug = isDebugTest;
|
|
4
6
|
describe('Queue Operation Test', () => {
|
|
5
7
|
it('should validate a queue', () => {
|
|
6
8
|
const queue = new Queue<number>();
|
|
@@ -209,7 +211,7 @@ describe('Queue Performance Test', () => {
|
|
|
209
211
|
for (let i = 0; i < dataSize; i++) {
|
|
210
212
|
queue.dequeue();
|
|
211
213
|
}
|
|
212
|
-
console.log(`Queue Performance Test: ${performance.now() - startTime} ms`);
|
|
214
|
+
isDebug && console.log(`Queue Performance Test: ${performance.now() - startTime} ms`);
|
|
213
215
|
expect(performance.now() - startTime).toBeLessThan(bigO.LINEAR * 100);
|
|
214
216
|
});
|
|
215
217
|
|
package/test/utils/big-o.ts
CHANGED
|
@@ -26,7 +26,7 @@ export const bigO = {
|
|
|
26
26
|
|
|
27
27
|
function findPotentialN(input: any): number {
|
|
28
28
|
let longestArray: any[] = [];
|
|
29
|
-
let mostProperties: {
|
|
29
|
+
let mostProperties: {[key: string]: any} = {};
|
|
30
30
|
|
|
31
31
|
function recurse(obj: any) {
|
|
32
32
|
if (Array.isArray(obj)) {
|