mol_plot_all 1.2.878 → 1.2.880
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/node.test.js +41 -33
- package/node.test.js.map +1 -1
- package/package.json +1 -1
- package/web.test.js +41 -33
- package/web.test.js.map +1 -1
package/package.json
CHANGED
package/web.test.js
CHANGED
|
@@ -326,7 +326,12 @@ var $;
|
|
|
326
326
|
var $;
|
|
327
327
|
(function ($) {
|
|
328
328
|
function $mol_range2(item = index => index, size = () => Number.POSITIVE_INFINITY) {
|
|
329
|
-
|
|
329
|
+
const source = typeof item === 'function' ? new $mol_range2_array() : item;
|
|
330
|
+
if (typeof item !== 'function') {
|
|
331
|
+
item = index => source[index];
|
|
332
|
+
size = () => source.length;
|
|
333
|
+
}
|
|
334
|
+
return new Proxy(source, {
|
|
330
335
|
get(target, field) {
|
|
331
336
|
if (typeof field === 'string') {
|
|
332
337
|
if (field === 'length')
|
|
@@ -339,7 +344,7 @@ var $;
|
|
|
339
344
|
if (index === Math.trunc(index))
|
|
340
345
|
return item(index);
|
|
341
346
|
}
|
|
342
|
-
return
|
|
347
|
+
return $mol_range2_array.prototype[field];
|
|
343
348
|
},
|
|
344
349
|
set(target, field) {
|
|
345
350
|
return $mol_fail(new TypeError(`Lazy range is read only (trying to set field ${JSON.stringify(field)})`));
|
|
@@ -380,13 +385,16 @@ var $;
|
|
|
380
385
|
return $mol_range2(index => index < this.length ? this[index] : tail[0][index - this.length], () => this.length + tail[0].length);
|
|
381
386
|
}
|
|
382
387
|
filter(check, context) {
|
|
383
|
-
const filtered =
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
388
|
+
const filtered = [];
|
|
389
|
+
let cursor = -1;
|
|
390
|
+
return $mol_range2(index => {
|
|
391
|
+
while (cursor < this.length && index >= filtered.length - 1) {
|
|
392
|
+
const val = this[++cursor];
|
|
393
|
+
if (check(val, cursor, this))
|
|
394
|
+
filtered.push(val);
|
|
395
|
+
}
|
|
396
|
+
return filtered[index];
|
|
397
|
+
}, () => cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length);
|
|
390
398
|
}
|
|
391
399
|
forEach(proceed, context) {
|
|
392
400
|
for (let [key, value] of this.entries())
|
|
@@ -446,7 +454,7 @@ var $;
|
|
|
446
454
|
'lazy calls'() {
|
|
447
455
|
let calls = 0;
|
|
448
456
|
const list = $mol_range2(index => (++calls, index), () => 10);
|
|
449
|
-
$
|
|
457
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
450
458
|
$mol_assert_equal(list.length, 10);
|
|
451
459
|
$mol_assert_equal(list[-1], undefined);
|
|
452
460
|
$mol_assert_equal(list[0], 0);
|
|
@@ -489,11 +497,17 @@ var $;
|
|
|
489
497
|
$mol_range2(i => i, () => 5).forEach(i => log += i);
|
|
490
498
|
$mol_assert_equal(log, '01234');
|
|
491
499
|
},
|
|
500
|
+
'reduce'() {
|
|
501
|
+
let calls = 0;
|
|
502
|
+
const list = $mol_range2().slice(1, 6);
|
|
503
|
+
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
504
|
+
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
505
|
+
},
|
|
492
506
|
'lazy concat'() {
|
|
493
507
|
let calls1 = 0;
|
|
494
508
|
let calls2 = 0;
|
|
495
509
|
const list = $mol_range2(index => (++calls1, index), () => 5).concat([0, 1, 2, 3, 4], $mol_range2(index => (++calls2, index), () => 5));
|
|
496
|
-
$
|
|
510
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
497
511
|
$mol_assert_equal(list.length, 15);
|
|
498
512
|
$mol_assert_equal(list[0], 0);
|
|
499
513
|
$mol_assert_equal(list[4], 4);
|
|
@@ -505,32 +519,26 @@ var $;
|
|
|
505
519
|
$mol_assert_equal(calls1, 2);
|
|
506
520
|
$mol_assert_equal(calls2, 2);
|
|
507
521
|
},
|
|
508
|
-
'filter'() {
|
|
522
|
+
'lazy filter'() {
|
|
509
523
|
let calls = 0;
|
|
510
|
-
const list = $mol_range2(index => (++calls, index), () =>
|
|
511
|
-
$
|
|
524
|
+
const list = $mol_range2(index => (++calls, index), () => 15).filter(v => v % 2).slice(0, 3);
|
|
525
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
512
526
|
$mol_assert_equal(list.length, 3);
|
|
513
527
|
$mol_assert_equal(list[0], 1);
|
|
514
528
|
$mol_assert_equal(list[2], 5);
|
|
515
529
|
$mol_assert_equal(list[3], undefined);
|
|
516
|
-
$mol_assert_equal(calls,
|
|
530
|
+
$mol_assert_equal(calls, 8);
|
|
517
531
|
},
|
|
518
|
-
'reverse'() {
|
|
532
|
+
'lazy reverse'() {
|
|
519
533
|
let calls = 0;
|
|
520
534
|
const list = $mol_range2(index => (++calls, index), () => 10).toReversed().slice(0, 3);
|
|
521
|
-
$
|
|
535
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
522
536
|
$mol_assert_equal(list.length, 3);
|
|
523
537
|
$mol_assert_equal(list[0], 9);
|
|
524
538
|
$mol_assert_equal(list[2], 7);
|
|
525
539
|
$mol_assert_equal(list[3], undefined);
|
|
526
540
|
$mol_assert_equal(calls, 2);
|
|
527
541
|
},
|
|
528
|
-
'reduce'() {
|
|
529
|
-
let calls = 0;
|
|
530
|
-
const list = $mol_range2().slice(1, 6);
|
|
531
|
-
$mol_assert_equal(list.reduce((s, v) => s + v), 15);
|
|
532
|
-
$mol_assert_equal(list.reduce((s, v) => s + v, 5), 20);
|
|
533
|
-
},
|
|
534
542
|
'lazy map'() {
|
|
535
543
|
let calls1 = 0;
|
|
536
544
|
let calls2 = 0;
|
|
@@ -540,7 +548,7 @@ var $;
|
|
|
540
548
|
$mol_assert_equal(source, self);
|
|
541
549
|
return index + 10;
|
|
542
550
|
}, () => 5);
|
|
543
|
-
$
|
|
551
|
+
$mol_assert_equal(true, target instanceof Array);
|
|
544
552
|
$mol_assert_equal(target.length, 5);
|
|
545
553
|
$mol_assert_equal(target[0], 10);
|
|
546
554
|
$mol_assert_equal(target[4], 14);
|
|
@@ -551,7 +559,7 @@ var $;
|
|
|
551
559
|
'lazy slice'() {
|
|
552
560
|
let calls = 0;
|
|
553
561
|
const list = $mol_range2(index => (++calls, index), () => 10).slice(3, 7);
|
|
554
|
-
$
|
|
562
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
555
563
|
$mol_assert_equal(list.length, 4);
|
|
556
564
|
$mol_assert_equal(list[0], 3);
|
|
557
565
|
$mol_assert_equal(list[3], 6);
|
|
@@ -560,22 +568,22 @@ var $;
|
|
|
560
568
|
},
|
|
561
569
|
'lazy some'() {
|
|
562
570
|
let calls = 0;
|
|
563
|
-
$
|
|
571
|
+
$mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
|
|
564
572
|
$mol_assert_equal(calls, 3);
|
|
565
|
-
$
|
|
566
|
-
$
|
|
573
|
+
$mol_assert_equal(false, $mol_range2(i => i, () => 0).some(v => true));
|
|
574
|
+
$mol_assert_equal(true, $mol_range2(i => i).some(v => v > 5));
|
|
567
575
|
},
|
|
568
576
|
'lazy every'() {
|
|
569
577
|
let calls = 0;
|
|
570
|
-
$
|
|
578
|
+
$mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
|
|
571
579
|
$mol_assert_equal(calls, 3);
|
|
572
|
-
$
|
|
573
|
-
$
|
|
580
|
+
$mol_assert_equal(true, $mol_range2(i => i, () => 0).every(v => false));
|
|
581
|
+
$mol_assert_equal(false, $mol_range2(i => i).every(v => v < 5));
|
|
574
582
|
},
|
|
575
583
|
'lazyfy'() {
|
|
576
584
|
let calls = 0;
|
|
577
|
-
const list =
|
|
578
|
-
$
|
|
585
|
+
const list = $mol_range2([0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
|
|
586
|
+
$mol_assert_equal(true, list instanceof Array);
|
|
579
587
|
$mol_assert_equal(list.length, 4);
|
|
580
588
|
$mol_assert_equal(calls, 0);
|
|
581
589
|
$mol_assert_equal(list[0], 12);
|