ts-data-forge 4.1.0 → 5.0.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/dist/array/impl/array-utils-element-access.mjs +1 -0
- package/dist/array/impl/array-utils-element-access.mjs.map +1 -1
- package/dist/array/impl/array-utils-modification.mjs +1 -0
- package/dist/array/impl/array-utils-modification.mjs.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.d.mts.map +1 -1
- package/dist/array/impl/array-utils-reducing-value.mjs +2 -1
- package/dist/array/impl/array-utils-reducing-value.mjs.map +1 -1
- package/dist/array/impl/array-utils-search.mjs +1 -0
- package/dist/array/impl/array-utils-search.mjs.map +1 -1
- package/dist/array/impl/array-utils-transformation.mjs +1 -0
- package/dist/array/impl/array-utils-transformation.mjs.map +1 -1
- package/dist/collections/imap-mapped.mjs +1 -0
- package/dist/collections/imap-mapped.mjs.map +1 -1
- package/dist/collections/imap.mjs +1 -0
- package/dist/collections/imap.mjs.map +1 -1
- package/dist/collections/queue.mjs +1 -0
- package/dist/collections/queue.mjs.map +1 -1
- package/dist/collections/stack.mjs +1 -0
- package/dist/collections/stack.mjs.map +1 -1
- package/dist/functional/result/impl/result-from-throwable.d.mts.map +1 -1
- package/dist/functional/result/impl/result-from-throwable.mjs +2 -1
- package/dist/functional/result/impl/result-from-throwable.mjs.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-from-throwable.d.mts.map +1 -1
- package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs +2 -1
- package/dist/functional/ternary-result/impl/ternary-result-from-throwable.mjs.map +1 -1
- package/dist/json/json.d.mts +9 -3
- package/dist/json/json.d.mts.map +1 -1
- package/dist/json/json.mjs +7 -0
- package/dist/json/json.mjs.map +1 -1
- package/dist/number/refined-number-utils.mjs +1 -0
- package/dist/number/refined-number-utils.mjs.map +1 -1
- package/dist/others/unknown-to-string.d.mts.map +1 -1
- package/dist/others/unknown-to-string.mjs +2 -1
- package/dist/others/unknown-to-string.mjs.map +1 -1
- package/dist/promise/promise.mjs +1 -0
- package/dist/promise/promise.mjs.map +1 -1
- package/package.json +18 -18
- package/src/array/impl/array-utils-creation.test.mts +187 -74
- package/src/array/impl/array-utils-element-access.test.mts +19 -3
- package/src/array/impl/array-utils-iterators.test.mts +44 -24
- package/src/array/impl/array-utils-modification.test.mts +36 -33
- package/src/array/impl/array-utils-reducing-value.mts +2 -1
- package/src/array/impl/array-utils-reducing-value.test.mts +47 -16
- package/src/array/impl/array-utils-search.test.mts +42 -9
- package/src/array/impl/array-utils-set-op.test.mts +54 -26
- package/src/array/impl/array-utils-size.test.mts +1 -0
- package/src/array/impl/array-utils-slice-clamped.test.mts +20 -11
- package/src/array/impl/array-utils-slicing.test.mts +27 -21
- package/src/array/impl/array-utils-transformation.test.mts +140 -92
- package/src/array/impl/array-utils-validation.test.mts +58 -10
- package/src/array/impl/array.test.mts +5 -5
- package/src/collections/imap-mapped.test.mts +63 -18
- package/src/collections/imap.test.mts +74 -26
- package/src/collections/iset-mapped.test.mts +81 -30
- package/src/collections/iset.test.mts +168 -68
- package/src/collections/queue.test.mts +32 -1
- package/src/collections/stack.test.mts +22 -8
- package/src/functional/match.test.mts +1 -1
- package/src/functional/optional.test.mts +61 -4
- package/src/functional/pipe.test.mts +10 -1
- package/src/functional/result/impl/result-from-throwable.mts +2 -1
- package/src/functional/result.test.mts +127 -4
- package/src/functional/ternary-result/impl/ternary-result-from-throwable.mts +2 -1
- package/src/functional/ternary-result.test.mts +34 -18
- package/src/guard/is-non-empty-string.test.mts +5 -2
- package/src/guard/is-non-null-object.test.mts +3 -5
- package/src/guard/is-primitive.test.mts +5 -3
- package/src/guard/is-record.test.mts +1 -1
- package/src/guard/is-type.test.mts +35 -20
- package/src/guard/key-is-in.test.mts +1 -1
- package/src/iterator/range.test.mts +22 -16
- package/src/json/json.mts +9 -3
- package/src/json/json.test.mts +140 -64
- package/src/number/branded-types/finite-number.test.mts +3 -2
- package/src/number/branded-types/int.test.mts +4 -3
- package/src/number/branded-types/int16.test.mts +9 -3
- package/src/number/branded-types/int32.test.mts +9 -3
- package/src/number/branded-types/non-negative-finite-number.test.mts +6 -4
- package/src/number/branded-types/non-negative-int16.test.mts +8 -3
- package/src/number/branded-types/non-negative-int32.test.mts +8 -3
- package/src/number/branded-types/non-zero-finite-number.test.mts +6 -3
- package/src/number/branded-types/non-zero-int.test.mts +6 -3
- package/src/number/branded-types/non-zero-int16.test.mts +9 -3
- package/src/number/branded-types/non-zero-int32.test.mts +9 -3
- package/src/number/branded-types/non-zero-safe-int.test.mts +10 -3
- package/src/number/branded-types/non-zero-uint16.test.mts +8 -3
- package/src/number/branded-types/non-zero-uint32.test.mts +8 -3
- package/src/number/branded-types/positive-finite-number.test.mts +7 -3
- package/src/number/branded-types/positive-int.test.mts +5 -3
- package/src/number/branded-types/positive-int16.test.mts +8 -3
- package/src/number/branded-types/positive-int32.test.mts +8 -3
- package/src/number/branded-types/positive-safe-int.test.mts +8 -3
- package/src/number/branded-types/positive-uint16.test.mts +8 -3
- package/src/number/branded-types/positive-uint32.test.mts +8 -3
- package/src/number/branded-types/safe-int.test.mts +8 -2
- package/src/number/branded-types/safe-uint.test.mts +8 -3
- package/src/number/branded-types/uint.test.mts +5 -3
- package/src/number/branded-types/uint16.test.mts +8 -3
- package/src/number/branded-types/uint32.test.mts +8 -3
- package/src/number/enum/int8.test.mts +8 -3
- package/src/number/enum/uint8.test.mts +6 -3
- package/src/number/num.test.mts +16 -2
- package/src/object/object.test.mts +26 -13
- package/src/others/cast-mutable.test.mts +10 -8
- package/src/others/cast-readonly.test.mts +9 -5
- package/src/others/if-then.test.mts +4 -1
- package/src/others/map-nullable.test.mts +28 -1
- package/src/others/memoize-function.test.mts +20 -17
- package/src/others/tuple.test.mts +3 -2
- package/src/others/unknown-to-string.mts +2 -1
- package/src/others/unknown-to-string.test.mts +15 -2
- package/src/promise/promise.test.mts +6 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Optional } from '../functional/index.mjs';
|
|
2
|
+
import { isString } from '../guard/index.mjs';
|
|
2
3
|
import { IMap } from './imap.mjs';
|
|
3
4
|
|
|
4
5
|
describe('IMap[Symbol.iterator]', () => {
|
|
@@ -11,7 +12,8 @@ describe('IMap[Symbol.iterator]', () => {
|
|
|
11
12
|
] as const),
|
|
12
13
|
);
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
assert.deepStrictEqual(
|
|
16
|
+
m0,
|
|
15
17
|
IMap.create([
|
|
16
18
|
[1, 10],
|
|
17
19
|
[2, 20],
|
|
@@ -64,6 +66,7 @@ describe('IMap[Symbol.iterator]', () => {
|
|
|
64
66
|
describe('IMap.create', () => {
|
|
65
67
|
test('should create empty map', () => {
|
|
66
68
|
const map = IMap.create<string, number>([]);
|
|
69
|
+
|
|
67
70
|
expect(map.size).toBe(0);
|
|
68
71
|
});
|
|
69
72
|
|
|
@@ -73,6 +76,7 @@ describe('IMap.create', () => {
|
|
|
73
76
|
['b', 2],
|
|
74
77
|
]);
|
|
75
78
|
const map = IMap.create(jsMap);
|
|
79
|
+
|
|
76
80
|
expect(map.size).toBe(2);
|
|
77
81
|
expect(Optional.unwrap(map.get('a'))).toBe(1);
|
|
78
82
|
expect(Optional.unwrap(map.get('b'))).toBe(2);
|
|
@@ -84,6 +88,7 @@ describe('IMap.create', () => {
|
|
|
84
88
|
['b', 2],
|
|
85
89
|
]);
|
|
86
90
|
const copy = IMap.create(original);
|
|
91
|
+
|
|
87
92
|
expect(copy.size).toBe(2);
|
|
88
93
|
expect(Optional.unwrap(copy.get('a'))).toBe(1);
|
|
89
94
|
expect(Optional.unwrap(copy.get('b'))).toBe(2);
|
|
@@ -100,6 +105,7 @@ describe('IMap.equal', () => {
|
|
|
100
105
|
['a', 1],
|
|
101
106
|
['b', 2],
|
|
102
107
|
]);
|
|
108
|
+
|
|
103
109
|
expect(IMap.equal(map1, map2)).toBe(true);
|
|
104
110
|
});
|
|
105
111
|
|
|
@@ -112,6 +118,7 @@ describe('IMap.equal', () => {
|
|
|
112
118
|
['b', 2],
|
|
113
119
|
['a', 1],
|
|
114
120
|
]);
|
|
121
|
+
|
|
115
122
|
expect(IMap.equal(map1, map2)).toBe(true);
|
|
116
123
|
});
|
|
117
124
|
|
|
@@ -121,6 +128,7 @@ describe('IMap.equal', () => {
|
|
|
121
128
|
['a', 1],
|
|
122
129
|
['b', 2],
|
|
123
130
|
]);
|
|
131
|
+
|
|
124
132
|
expect(IMap.equal(map1, map2)).toBe(false);
|
|
125
133
|
});
|
|
126
134
|
|
|
@@ -133,6 +141,7 @@ describe('IMap.equal', () => {
|
|
|
133
141
|
['a', 1],
|
|
134
142
|
['b', 3],
|
|
135
143
|
]);
|
|
144
|
+
|
|
136
145
|
expect(IMap.equal(map1, map2)).toBe(false);
|
|
137
146
|
});
|
|
138
147
|
|
|
@@ -145,12 +154,14 @@ describe('IMap.equal', () => {
|
|
|
145
154
|
['a', 1],
|
|
146
155
|
['c', 2],
|
|
147
156
|
]);
|
|
157
|
+
|
|
148
158
|
expect(IMap.equal(map1, map2)).toBe(false);
|
|
149
159
|
});
|
|
150
160
|
|
|
151
161
|
test('should return true for empty maps', () => {
|
|
152
162
|
const map1 = IMap.create<string, number>([]);
|
|
153
163
|
const map2 = IMap.create<string, number>([]);
|
|
164
|
+
|
|
154
165
|
expect(IMap.equal(map1, map2)).toBe(true);
|
|
155
166
|
});
|
|
156
167
|
});
|
|
@@ -216,6 +227,7 @@ describe('IMap.has', () => {
|
|
|
216
227
|
[true, 'yes'],
|
|
217
228
|
[false, 'no'],
|
|
218
229
|
]);
|
|
230
|
+
|
|
219
231
|
expect(map.has(true)).toBe(true);
|
|
220
232
|
expect(map.has(false)).toBe(true);
|
|
221
233
|
});
|
|
@@ -225,6 +237,7 @@ describe('IMap.has', () => {
|
|
|
225
237
|
['1', 'one'],
|
|
226
238
|
['2', 'two'],
|
|
227
239
|
]);
|
|
240
|
+
|
|
228
241
|
expect(map.has('1')).toBe(true);
|
|
229
242
|
expect(map.has(String(1))).toBe(true);
|
|
230
243
|
});
|
|
@@ -240,7 +253,7 @@ describe('IMap.get', () => {
|
|
|
240
253
|
[7, 70],
|
|
241
254
|
] as const);
|
|
242
255
|
|
|
243
|
-
|
|
256
|
+
assert.deepStrictEqual(m0.get(6), Optional.some(60));
|
|
244
257
|
});
|
|
245
258
|
|
|
246
259
|
test('case 2', () => {
|
|
@@ -252,13 +265,13 @@ describe('IMap.get', () => {
|
|
|
252
265
|
[7, 70],
|
|
253
266
|
]);
|
|
254
267
|
|
|
255
|
-
|
|
268
|
+
assert.deepStrictEqual(m0.get(8), Optional.none);
|
|
256
269
|
});
|
|
257
270
|
|
|
258
271
|
test('case 3', () => {
|
|
259
272
|
const m0 = IMap.create<number, number>([]);
|
|
260
273
|
|
|
261
|
-
|
|
274
|
+
assert.deepStrictEqual(m0.get(0), Optional.none);
|
|
262
275
|
});
|
|
263
276
|
|
|
264
277
|
test('case 4', () => {
|
|
@@ -271,7 +284,7 @@ describe('IMap.get', () => {
|
|
|
271
284
|
[Number.NaN, 100],
|
|
272
285
|
] as const);
|
|
273
286
|
|
|
274
|
-
|
|
287
|
+
assert.deepStrictEqual(m0.get(Number.NaN), Optional.some(100));
|
|
275
288
|
});
|
|
276
289
|
|
|
277
290
|
test('should handle undefined and null values', () => {
|
|
@@ -279,6 +292,7 @@ describe('IMap.get', () => {
|
|
|
279
292
|
['undef', undefined],
|
|
280
293
|
['null', null],
|
|
281
294
|
]);
|
|
295
|
+
|
|
282
296
|
expect(Optional.unwrap(map.get('undef'))).toBeUndefined();
|
|
283
297
|
expect(Optional.unwrap(map.get('null'))).toBeNull();
|
|
284
298
|
});
|
|
@@ -294,7 +308,8 @@ describe('IMap.set', () => {
|
|
|
294
308
|
[7, 70],
|
|
295
309
|
]);
|
|
296
310
|
|
|
297
|
-
|
|
311
|
+
assert.deepStrictEqual(
|
|
312
|
+
m0.set(9, 90),
|
|
298
313
|
IMap.create([
|
|
299
314
|
[1, 10],
|
|
300
315
|
[3, 30],
|
|
@@ -304,7 +319,8 @@ describe('IMap.set', () => {
|
|
|
304
319
|
[9, 90],
|
|
305
320
|
]),
|
|
306
321
|
);
|
|
307
|
-
|
|
322
|
+
assert.deepStrictEqual(
|
|
323
|
+
m0,
|
|
308
324
|
IMap.create([
|
|
309
325
|
[1, 10],
|
|
310
326
|
[3, 30],
|
|
@@ -324,7 +340,8 @@ describe('IMap.set', () => {
|
|
|
324
340
|
[7, 70],
|
|
325
341
|
]);
|
|
326
342
|
|
|
327
|
-
|
|
343
|
+
assert.deepStrictEqual(
|
|
344
|
+
m0.set(3, 40),
|
|
328
345
|
IMap.create([
|
|
329
346
|
[1, 10],
|
|
330
347
|
[3, 40],
|
|
@@ -333,7 +350,8 @@ describe('IMap.set', () => {
|
|
|
333
350
|
[7, 70],
|
|
334
351
|
]),
|
|
335
352
|
);
|
|
336
|
-
|
|
353
|
+
assert.deepStrictEqual(
|
|
354
|
+
m0,
|
|
337
355
|
IMap.create([
|
|
338
356
|
[1, 10],
|
|
339
357
|
[3, 30],
|
|
@@ -347,13 +365,14 @@ describe('IMap.set', () => {
|
|
|
347
365
|
test('case 3', () => {
|
|
348
366
|
const m0 = IMap.create<number, number>([]);
|
|
349
367
|
|
|
350
|
-
|
|
351
|
-
|
|
368
|
+
assert.deepStrictEqual(m0.set(1, 10), IMap.create([[1, 10]]));
|
|
369
|
+
assert.deepStrictEqual(m0, IMap.create<number, number>([]));
|
|
352
370
|
});
|
|
353
371
|
|
|
354
372
|
test('should not create new instance when setting the same value', () => {
|
|
355
373
|
const map = IMap.create([['a', 1]]);
|
|
356
374
|
const updated = map.set('a', 1);
|
|
375
|
+
|
|
357
376
|
expect(updated).toBe(map);
|
|
358
377
|
expect(Optional.unwrap(updated.get('a'))).toBe(1);
|
|
359
378
|
});
|
|
@@ -363,6 +382,7 @@ describe('IMap.set', () => {
|
|
|
363
382
|
const curr = map.get('a');
|
|
364
383
|
assert(Optional.isSome(curr));
|
|
365
384
|
const updated = map.set('a', curr.value);
|
|
385
|
+
|
|
366
386
|
expect(updated).toBe(map);
|
|
367
387
|
expect(Optional.unwrap(updated.get('a'))).toBe(1);
|
|
368
388
|
});
|
|
@@ -388,7 +408,8 @@ describe('IMap.update', () => {
|
|
|
388
408
|
[7, 70],
|
|
389
409
|
]);
|
|
390
410
|
|
|
391
|
-
|
|
411
|
+
assert.deepStrictEqual(
|
|
412
|
+
m0.update(9, (x) => 2 * x),
|
|
392
413
|
IMap.create([
|
|
393
414
|
[1, 10],
|
|
394
415
|
[3, 30],
|
|
@@ -397,7 +418,8 @@ describe('IMap.update', () => {
|
|
|
397
418
|
[7, 70],
|
|
398
419
|
]),
|
|
399
420
|
);
|
|
400
|
-
|
|
421
|
+
assert.deepStrictEqual(
|
|
422
|
+
m0,
|
|
401
423
|
IMap.create([
|
|
402
424
|
[1, 10],
|
|
403
425
|
[3, 30],
|
|
@@ -417,7 +439,8 @@ describe('IMap.update', () => {
|
|
|
417
439
|
[7, 70],
|
|
418
440
|
]);
|
|
419
441
|
|
|
420
|
-
|
|
442
|
+
assert.deepStrictEqual(
|
|
443
|
+
m0.update(3, (x) => 2 * x),
|
|
421
444
|
IMap.create([
|
|
422
445
|
[1, 10],
|
|
423
446
|
[3, 60],
|
|
@@ -426,7 +449,8 @@ describe('IMap.update', () => {
|
|
|
426
449
|
[7, 70],
|
|
427
450
|
]),
|
|
428
451
|
);
|
|
429
|
-
|
|
452
|
+
assert.deepStrictEqual(
|
|
453
|
+
m0,
|
|
430
454
|
IMap.create([
|
|
431
455
|
[1, 10],
|
|
432
456
|
[3, 30],
|
|
@@ -440,8 +464,11 @@ describe('IMap.update', () => {
|
|
|
440
464
|
test('case 3', () => {
|
|
441
465
|
const m0 = IMap.create<number, number>([]);
|
|
442
466
|
|
|
443
|
-
|
|
444
|
-
|
|
467
|
+
assert.deepStrictEqual(
|
|
468
|
+
m0.update(1, (x) => 2 * x),
|
|
469
|
+
IMap.create([]),
|
|
470
|
+
);
|
|
471
|
+
assert.deepStrictEqual(m0, IMap.create<number, number>([]));
|
|
445
472
|
});
|
|
446
473
|
|
|
447
474
|
test('should not modify original map when updating', () => {
|
|
@@ -463,7 +490,8 @@ describe('IMap.delete', () => {
|
|
|
463
490
|
[7, 70],
|
|
464
491
|
]);
|
|
465
492
|
|
|
466
|
-
|
|
493
|
+
assert.deepStrictEqual(
|
|
494
|
+
m0.delete(10),
|
|
467
495
|
IMap.create([
|
|
468
496
|
[1, 10],
|
|
469
497
|
[3, 30],
|
|
@@ -472,7 +500,8 @@ describe('IMap.delete', () => {
|
|
|
472
500
|
[7, 70],
|
|
473
501
|
]),
|
|
474
502
|
);
|
|
475
|
-
|
|
503
|
+
assert.deepStrictEqual(
|
|
504
|
+
m0,
|
|
476
505
|
IMap.create([
|
|
477
506
|
[1, 10],
|
|
478
507
|
[3, 30],
|
|
@@ -492,15 +521,17 @@ describe('IMap.delete', () => {
|
|
|
492
521
|
[7, 70],
|
|
493
522
|
]);
|
|
494
523
|
|
|
495
|
-
|
|
496
|
-
|
|
524
|
+
assert.deepStrictEqual(
|
|
525
|
+
m0.delete(3),
|
|
526
|
+
IMap.create<1 | 3 | 5 | 6 | 7, number>([
|
|
497
527
|
[1, 10],
|
|
498
528
|
[5, 50],
|
|
499
529
|
[6, 60],
|
|
500
530
|
[7, 70],
|
|
501
531
|
]),
|
|
502
532
|
);
|
|
503
|
-
|
|
533
|
+
assert.deepStrictEqual(
|
|
534
|
+
m0,
|
|
504
535
|
IMap.create([
|
|
505
536
|
[1, 10],
|
|
506
537
|
[3, 30],
|
|
@@ -514,8 +545,8 @@ describe('IMap.delete', () => {
|
|
|
514
545
|
test('case 3', () => {
|
|
515
546
|
const m0 = IMap.create<number, number>([]);
|
|
516
547
|
|
|
517
|
-
|
|
518
|
-
|
|
548
|
+
assert.deepStrictEqual(m0.delete(1), IMap.create([]));
|
|
549
|
+
assert.deepStrictEqual(m0, IMap.create<number, number>([]));
|
|
519
550
|
});
|
|
520
551
|
|
|
521
552
|
test('should not modify original map when deleting', () => {
|
|
@@ -539,6 +570,7 @@ describe('IMap.every', () => {
|
|
|
539
570
|
['b', 4],
|
|
540
571
|
['c', 6],
|
|
541
572
|
]);
|
|
573
|
+
|
|
542
574
|
expect(map.every((value) => value % 2 === 0)).toBe(true);
|
|
543
575
|
});
|
|
544
576
|
|
|
@@ -548,11 +580,13 @@ describe('IMap.every', () => {
|
|
|
548
580
|
['b', 3],
|
|
549
581
|
['c', 4],
|
|
550
582
|
]);
|
|
583
|
+
|
|
551
584
|
expect(map.every((value) => value % 2 === 0)).toBe(false);
|
|
552
585
|
});
|
|
553
586
|
|
|
554
587
|
test('should return true for empty map', () => {
|
|
555
588
|
const map = IMap.create<string, number>([]);
|
|
589
|
+
|
|
556
590
|
expect(map.every((value) => value > 0)).toBe(true);
|
|
557
591
|
});
|
|
558
592
|
|
|
@@ -562,6 +596,7 @@ describe('IMap.every', () => {
|
|
|
562
596
|
['bb', 2],
|
|
563
597
|
['cc', 3],
|
|
564
598
|
]);
|
|
599
|
+
|
|
565
600
|
expect(map.every((_value, key) => key.length === 2)).toBe(true);
|
|
566
601
|
});
|
|
567
602
|
|
|
@@ -573,7 +608,8 @@ describe('IMap.every', () => {
|
|
|
573
608
|
if (map.every((value): value is string => typeof value === 'string')) {
|
|
574
609
|
// Type should be narrowed to IMap<string, string>
|
|
575
610
|
const firstValue = Optional.unwrap(map.get('a'));
|
|
576
|
-
|
|
611
|
+
|
|
612
|
+
expect(isString(firstValue)).toBe(true);
|
|
577
613
|
}
|
|
578
614
|
});
|
|
579
615
|
});
|
|
@@ -585,6 +621,7 @@ describe('IMap.some', () => {
|
|
|
585
621
|
['b', 2],
|
|
586
622
|
['c', 3],
|
|
587
623
|
]);
|
|
624
|
+
|
|
588
625
|
expect(map.some((value) => value % 2 === 0)).toBe(true);
|
|
589
626
|
});
|
|
590
627
|
|
|
@@ -594,11 +631,13 @@ describe('IMap.some', () => {
|
|
|
594
631
|
['b', 3],
|
|
595
632
|
['c', 5],
|
|
596
633
|
]);
|
|
634
|
+
|
|
597
635
|
expect(map.some((value) => value % 2 === 0)).toBe(false);
|
|
598
636
|
});
|
|
599
637
|
|
|
600
638
|
test('should return false for empty map', () => {
|
|
601
639
|
const map = IMap.create<string, number>([]);
|
|
640
|
+
|
|
602
641
|
expect(map.some((value) => value > 0)).toBe(false);
|
|
603
642
|
});
|
|
604
643
|
|
|
@@ -608,6 +647,7 @@ describe('IMap.some', () => {
|
|
|
608
647
|
['bb', 2],
|
|
609
648
|
['c', 3],
|
|
610
649
|
]);
|
|
650
|
+
|
|
611
651
|
expect(map.some((_value, key) => key.length > 1)).toBe(true);
|
|
612
652
|
});
|
|
613
653
|
});
|
|
@@ -637,6 +677,7 @@ describe('IMap.withMutations', () => {
|
|
|
637
677
|
['b', 2],
|
|
638
678
|
]);
|
|
639
679
|
const updated = map.withMutations([]);
|
|
680
|
+
|
|
640
681
|
expect(updated.size).toBe(map.size);
|
|
641
682
|
expect(Optional.unwrap(updated.get('a'))).toBe(1);
|
|
642
683
|
expect(Optional.unwrap(updated.get('b'))).toBe(2);
|
|
@@ -647,6 +688,7 @@ describe('IMap.withMutations', () => {
|
|
|
647
688
|
const updated = map.withMutations([
|
|
648
689
|
{ type: 'update', key: 'nonexistent', updater: (x: number) => x * 2 },
|
|
649
690
|
]);
|
|
691
|
+
|
|
650
692
|
expect(updated.size).toBe(map.size);
|
|
651
693
|
expect(Optional.isNone(updated.get('nonexistent'))).toBe(true);
|
|
652
694
|
});
|
|
@@ -657,6 +699,7 @@ describe('IMap.withMutations', () => {
|
|
|
657
699
|
{ type: 'set', key: 'a', value: 10 },
|
|
658
700
|
{ type: 'update', key: 'a', updater: (x: number) => x + 5 },
|
|
659
701
|
]);
|
|
702
|
+
|
|
660
703
|
expect(Optional.unwrap(updated.get('a'))).toBe(15);
|
|
661
704
|
});
|
|
662
705
|
});
|
|
@@ -860,6 +903,7 @@ describe('IMap.toKeysArray', () => {
|
|
|
860
903
|
['c', 3],
|
|
861
904
|
]);
|
|
862
905
|
const keys = map.toKeysArray();
|
|
906
|
+
|
|
863
907
|
expect(keys).toHaveLength(3);
|
|
864
908
|
expect(keys).toContain('a');
|
|
865
909
|
expect(keys).toContain('b');
|
|
@@ -875,6 +919,7 @@ describe('IMap.toValuesArray', () => {
|
|
|
875
919
|
['c', 3],
|
|
876
920
|
]);
|
|
877
921
|
const values = map.toValuesArray();
|
|
922
|
+
|
|
878
923
|
expect(values).toHaveLength(3);
|
|
879
924
|
expect(values).toContain(1);
|
|
880
925
|
expect(values).toContain(2);
|
|
@@ -890,6 +935,7 @@ describe('IMap.toEntriesArray', () => {
|
|
|
890
935
|
['c', 3],
|
|
891
936
|
]);
|
|
892
937
|
const entries = map.toEntriesArray();
|
|
938
|
+
|
|
893
939
|
expect(entries).toHaveLength(3);
|
|
894
940
|
expect(entries).toContainEqual(['a', 1]);
|
|
895
941
|
expect(entries).toContainEqual(['b', 2]);
|
|
@@ -906,7 +952,8 @@ describe('IMap.toArray', () => {
|
|
|
906
952
|
]);
|
|
907
953
|
const entries = map.toArray();
|
|
908
954
|
const entriesArray = map.toEntriesArray();
|
|
909
|
-
|
|
955
|
+
|
|
956
|
+
assert.deepStrictEqual(entries, entriesArray);
|
|
910
957
|
});
|
|
911
958
|
});
|
|
912
959
|
|
|
@@ -918,6 +965,7 @@ describe('IMap.toRawMap', () => {
|
|
|
918
965
|
['c', 3],
|
|
919
966
|
]);
|
|
920
967
|
const rawMap = map.toRawMap();
|
|
968
|
+
|
|
921
969
|
expect(rawMap.size).toBe(3);
|
|
922
970
|
expect(rawMap.get('a')).toBe(1);
|
|
923
971
|
expect(rawMap.get('b')).toBe(2);
|