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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mol_plot_all",
3
- "version": "1.2.878",
3
+ "version": "1.2.880",
4
4
  "exports": {
5
5
  "node": {
6
6
  "import": "./node.mjs",
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
- return new Proxy(new $mol_range2_array(), {
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 target[field];
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 = new $mol_range2_array();
384
- for (let index = 0; index < this.length; ++index) {
385
- const item = this[index];
386
- if (check.call(context, item, index, this))
387
- filtered.push(item);
388
- }
389
- return filtered;
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok(list instanceof Array);
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), () => 10).filter(v => v % 2).slice(0, 3);
511
- $mol_assert_ok(list instanceof Array);
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, 10);
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok(target instanceof Array);
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
- $mol_assert_ok(list instanceof Array);
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
- $mol_assert_ok($mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
571
+ $mol_assert_equal(true, $mol_range2(index => (++calls, index), () => 5).some(v => v >= 2));
564
572
  $mol_assert_equal(calls, 3);
565
- $mol_assert_not($mol_range2(i => i, () => 0).some(v => true));
566
- $mol_assert_ok($mol_range2(i => i).some(v => v > 5));
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
- $mol_assert_not($mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
578
+ $mol_assert_equal(false, $mol_range2(index => (++calls, index), () => 5).every(v => v < 2));
571
579
  $mol_assert_equal(calls, 3);
572
- $mol_assert_ok($mol_range2(i => i, () => 0).every(v => false));
573
- $mol_assert_not($mol_range2(i => i).every(v => v < 5));
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 = new $mol_range2_array(...[0, 1, 2, 3, 4, 5]).map(i => (++calls, i + 10)).slice(2);
578
- $mol_assert_ok(list instanceof Array);
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);