Skip to content

Commit 36be63e

Browse files
committed
(Set|Bag|Mix)(|Hash).(min|max)->(minpairs|maxpairs)
1 parent a783d7b commit 36be63e

File tree

6 files changed

+100
-52
lines changed

6 files changed

+100
-52
lines changed

S02-types/bag.t

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use v6;
22
use Test;
33

4-
plan 179;
4+
plan 187;
55

66
sub showkv($x) {
77
$x.keys.sort.map({ $^k ~ ':' ~ $x{$k} }).join(' ')
@@ -393,20 +393,32 @@ sub showkv($x) {
393393
"Method .Bag works on Parcel-2";
394394
}
395395

396-
#?pugs skip '.total/.min/.max NYI'
397-
#?niecza skip '.total/.min/.max NYI'
396+
#?pugs skip '.total/.minpairs/.maxpairs NYI'
397+
#?niecza skip '.total/.minpairs/.maxpairs NYI'
398398
{
399-
my $b = <a b b c c c d d d d>.Bag;
400-
is $b.total, 10, '.total gives sum of values (non-empty)';
401-
is +$b, 10, '+$bag gives sum of values (non-empty)';
402-
is $b.min, 1, '.min works (non-empty)';
403-
is $b.max, 4, '.max works (non-empty)';
399+
my $b1 = <a b b c c c d d d d>.Bag;
400+
is $b1.total, 10, '.total gives sum of values (non-empty 10)';
401+
is +$b1, 10, '+$bag gives sum of values (non-empty 10)';
402+
is $b1.minpairs, [a=>1], '.minpairs works (non-empty 10)';
403+
is $b1.maxpairs, [d=>4], '.maxpairs works (non-empty 10)';
404+
405+
my $b2 = <a b c c c d d d>.Bag;
406+
is $b2.total, 8, '.total gives sum of values (non-empty 8)';
407+
is +$b2, 8, '+$bag gives sum of values (non-empty 8)';
408+
is $b2.minpairs.sort, [a=>1, b=>1], '.minpairs works (non-empty 8)';
409+
is $b2.maxpairs.sort, [c=>3, d=>3], '.maxpairs works (non-empty 8)';
410+
411+
my $b2 = <a b c d>.Bag;
412+
is $b2.total, 4, '.total gives sum of values (non-empty 4)';
413+
is +$b2, 4, '+$bag gives sum of values (non-empty 4)';
414+
is $b2.minpairs.sort,[a=>1,b=>1,c=>1,d=>1], '.minpairs works (non-empty 4)';
415+
is $b2.maxpairs.sort,[a=>1,b=>1,c=>1,d=>1], '.maxpairs works (non-empty 4)';
404416

405417
my $e = ().Bag;
406418
is $e.total, 0, '.total gives sum of values (empty)';
407419
is +$e, 0, '+$bag gives sum of values (empty)';
408-
is $e.min, Inf, '.min works (empty)';
409-
is $e.max, -Inf, '.max works (empty)';
420+
is $e.minpairs, (), '.minpairs works (empty)';
421+
is $e.maxpairs, (), '.maxpairs works (empty)';
410422
}
411423

412424
# vim: ft=perl6

S02-types/baghash.t

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use v6;
22
use Test;
33

4-
plan 234;
4+
plan 242;
55

66
# L<S02/Mutable types/QuantHash of UInt>
77

@@ -524,20 +524,32 @@ sub showkv($x) {
524524
"Method .BagHash works on Parcel-2";
525525
}
526526

527-
#?pugs skip '.total/.min/.max NYI'
528-
#?niecza skip '.total/.min/.max NYI'
527+
#?pugs skip '.total/.minpairs/.maxpairs NYI'
528+
#?niecza skip '.total/.minpairs/.maxpairs NYI'
529529
{
530-
my $b = <a b b c c c d d d d>.BagHash;
531-
is $b.total, 10, '.total gives sum of values (non-empty)';
532-
is +$b, 10, '+$bag gives sum of values (non-empty)';
533-
is $b.min, 1, '.min works (non-empty)';
534-
is $b.max, 4, '.max works (non-empty)';
530+
my $b1 = <a b b c c c d d d d>.BagHash;
531+
is $b1.total, 10, '.total gives sum of values (non-empty) 10';
532+
is +$b1, 10, '+$bag gives sum of values (non-empty) 10';
533+
is $b1.minpairs, [a=>1], '.minpairs works (non-empty) 10';
534+
is $b1.maxpairs, [d=>4], '.maxpairs works (non-empty) 10';
535+
536+
my $b2 = <a b c c c d d d>.BagHash;
537+
is $b2.total, 8, '.total gives sum of values (non-empty) 8';
538+
is +$b2, 8, '+$bag gives sum of values (non-empty) 8';
539+
is $b2.minpairs.sort, [a=>1,b=>1], '.minpairs works (non-empty) 8';
540+
is $b2.maxpairs.sort, [c=>3,d=>3], '.maxpairs works (non-empty) 8';
541+
542+
my $b3 = <a b c d>.BagHash;
543+
is $b3.total, 4, '.total gives sum of values (non-empty) 4';
544+
is +$b3, 4, '+$bag gives sum of values (non-empty) 4';
545+
is $b3.minpairs.sort,[a=>1,b=>1,c=>1,d=>1], '.minpairs works (non-empty) 4';
546+
is $b3.maxpairs.sort,[a=>1,b=>1,c=>1,d=>1], '.maxpairs works (non-empty) 4';
535547

536548
my $e = ().BagHash;
537549
is $e.total, 0, '.total gives sum of values (empty)';
538550
is +$e, 0, '+$bag gives sum of values (empty)';
539-
is $e.min, Inf, '.min works (empty)';
540-
is $e.max, -Inf, '.max works (empty)';
551+
is $e.minpairs, (), '.minpairs works (empty)';
552+
is $e.maxpairs, (), '.maxpairs works (empty)';
541553
}
542554

543555
# vim: ft=perl6

S02-types/mix.t

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use v6;
22
use Test;
33

4-
plan 161;
4+
plan 169;
55

66
sub showkv($x) {
77
$x.keys.sort.map({ $^k ~ ':' ~ $x{$k} }).join(' ')
@@ -350,20 +350,32 @@ sub showkv($x) {
350350
"Method .Mix works on Parcel-2";
351351
}
352352

353-
#?pugs skip '.total/.min/.max NYI'
354-
#?niecza skip '.total/.min/.max NYI'
353+
#?pugs skip '.total/.minpairs/.maxpairs NYI'
354+
#?niecza skip '.total/.minpairs/.maxpairs NYI'
355355
{
356-
my $m = (a => 1.1, b => 2.2, c => 3.3, d => 4.4).Mix;
357-
is $m.total, 11, '.total gives sum of values (non-empty)';
358-
is +$m, 11, '+$set gives sum of values (non-empty)';
359-
is $m.min, 1.1, '.min works (non-empty)';
360-
is $m.max, 4.4, '.max works (non-empty)';
356+
my $m1 = (a => 1.1, b => 2.2, c => 3.3, d => 4.4).Mix;
357+
is $m1.total, 11, '.total gives sum of values (non-empty) 11';
358+
is +$m1, 11, '+$set gives sum of values (non-empty) 11';
359+
is $m1.minpairs, [a=>1.1], '.minpairs works (non-empty) 11';
360+
is $m1.maxpairs, [d=>4.4], '.maxpairs works (non-empty) 11';
361+
362+
my $m2 = (a => 1.1, b => 1.1, c => 3.3, d => 3.3).Mix;
363+
is $m2.total, 8.8, '.total gives sum of values (non-empty) 8.8';
364+
is +$m2, 8.8, '+$set gives sum of values (non-empty) 8.8';
365+
is $m2.minpairs.sort, [a=>1.1,b=>1.1], '.minpairs works (non-empty) 8.8';
366+
is $m2.maxpairs.sort, [c=>3.3,d=>3.3], '.maxpairs works (non-empty) 8.8';
367+
368+
my $m3 = (a => 1.1, b => 1.1, c => 1.1, d => 1.1).Mix;
369+
is $m3.total, 4.4, '.total gives sum of values (non-empty) 4.4';
370+
is +$m3, 4.4, '+$set gives sum of values (non-empty) 4.4';
371+
is $m3.minpairs.sort,[a=>1.1,b=>1.1,c=>1.1,d=>1.1], '.minpairs works (non-empty) 4.4';
372+
is $m3.maxpairs.sort,[a=>1.1,b=>1.1,c=>1.1,d=>1.1], '.maxpairs works (non-empty) 4.4';
361373

362374
my $e = ().Mix;
363375
is $e.total, 0, '.total gives sum of values (empty)';
364376
is +$e, 0, '+$mix gives sum of values (empty)';
365-
is $e.min, Inf, '.min works (empty)';
366-
is $e.max, -Inf, '.max works (empty)';
377+
is $e.minpairs, (), '.minpairs works (empty)';
378+
is $e.maxpairs, (), '.maxpairs works (empty)';
367379
}
368380

369381
# vim: ft=perl6

S02-types/mixhash.t

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use v6;
22
use Test;
33

4-
plan 199;
4+
plan 207;
55

66
# L<S02/Mutable types/QuantHash of UInt>
77

@@ -438,20 +438,32 @@ sub showkv($x) {
438438
"Method .MixHash works on Parcel-2";
439439
}
440440

441-
#?pugs skip '.total/.min/.max NYI'
442-
#?niecza skip '.total/.min/.max NYI'
441+
#?pugs skip '.total/.minpairs/.maxpairs NYI'
442+
#?niecza skip '.total/.minpairs/.maxpairs NYI'
443443
{
444-
my $m = (a => 1.1, b => 2.2, c => 3.3, d => 4.4).MixHash;
445-
is $m.total, 11, '.total gives sum of values (non-empty)';
446-
is +$m, 11, '+$set gives sum of values (non-empty)';
447-
is $m.min, 1.1, '.min works (non-empty)';
448-
is $m.max, 4.4, '.max works (non-empty)';
444+
my $m1 = (a => 1.1, b => 2.2, c => 3.3, d => 4.4).MixHash;
445+
is $m1.total, 11, '.total gives sum of values (non-empty) 11';
446+
is +$m1, 11, '+$mix gives sum of values (non-empty) 11';
447+
is $m1.minpairs, [a=>1.1], '.minpairs works (non-empty) 11';
448+
is $m1.maxpairs, [d=>4.4], '.maxpairs works (non-empty) 11';
449+
450+
my $m2 = (a => 1.1, b => 1.1, c => 3.3, d => 3.3).MixHash;
451+
is $m2.total, 8.8, '.total gives sum of values (non-empty) 8.8';
452+
is +$m2, 8.8, '+$mix gives sum of values (non-empty) 8.8';
453+
is $m2.minpairs.sort, [a=>1.1,b=>1.1], '.minpairs works (non-empty) 8.8';
454+
is $m2.maxpairs.sort, [c=>3.3,d=>3.3], '.maxpairs works (non-empty) 8.8';
455+
456+
my $m3 = (a => 1.1, b => 1.1, c => 1.1, d => 1.1).MixHash;
457+
is $m3.total, 4.4, '.total gives sum of values (non-empty) 4.4';
458+
is +$m3, 4.4, '+$mix gives sum of values (non-empty) 4.4';
459+
is $m3.minpairs.sort,[a=>1.1,b=>1.1,c=>1.1,d=>1.1], '.minpairs works (non-empty) 4.4';
460+
is $m3.maxpairs.sort,[a=>1.1,b=>1.1,c=>1.1,d=>1.1], '.maxpairs works (non-empty) 4.4';
449461

450462
my $e = ().MixHash;
451463
is $e.total, 0, '.total gives sum of values (empty)';
452464
is +$e, 0, '+$mix gives sum of values (empty)';
453-
is $e.min, Inf, '.min works (empty)';
454-
is $e.max, -Inf, '.max works (empty)';
465+
is $e.minpairs, (), '.minpairs works (empty)';
466+
is $e.maxpairs, (), '.maxpairs works (empty)';
455467
}
456468

457469
# vim: ft=perl6

S02-types/set.t

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -340,20 +340,20 @@ sub showset($s) { $s.keys.sort.join(' ') }
340340
is showset((@a, %x).Set), "Now Paradise a b cross-handed set the was way", "Method .Set works on Parcel-2";
341341
}
342342

343-
#?pugs skip '.total/.min/.max NYI'
344-
#?niecza skip '.total/.min/.max NYI'
343+
#?pugs skip '.total/.minpairs/.maxpairs NYI'
344+
#?niecza skip '.total/.minpairs/.maxpairs NYI'
345345
{
346346
my $s = <a b b c c c d d d d>.Set;
347347
is $s.total, 4, '.total gives sum of values (non-empty)';
348348
is +$s, 4, '+$set gives sum of values (non-empty)';
349-
is $s.min, 1, '.min works (non-empty)';
350-
is $s.max, 1, '.max works (non-empty)';
349+
is $s.minpairs.sort,[a=>True,b=>True,c=>True,d=>True], '.minpairs works (non-empty)';
350+
is $s.maxpairs.sort,[a=>True,b=>True,c=>True,d=>True], '.maxpairs works (non-empty)';
351351

352352
my $e = ().Set;
353353
is $e.total, 0, '.total gives sum of values (empty)';
354354
is +$e, 0, '+$set gives sum of values (empty)';
355-
is $e.min, Inf, '.min works (empty)';
356-
is $e.max, -Inf, '.max works (empty)';
355+
is $e.minpairs, (), '.minpairs works (empty)';
356+
is $e.maxpairs, (), '.maxpairs works (empty)';
357357
}
358358

359359
# vim: ft=perl6

S02-types/sethash.t

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -408,20 +408,20 @@ sub showset($s) { $s.keys.sort.join(' ') }
408408
is showset((@a, %x).SetHash), "Now Paradise a b cross-handed set the was way", "Method .SetHash works on Parcel-2";
409409
}
410410

411-
#?pugs skip '.total/.min/.max NYI'
412-
#?niecza skip '.total/.min/.max NYI'
411+
#?pugs skip '.total/.minpairs/.maxpairs NYI'
412+
#?niecza skip '.total/.minpairs/.maxpairs NYI'
413413
{
414414
my $s = <a b b c c c d d d d>.SetHash;
415415
is $s.total, 4, '.total gives sum of values (non-empty)';
416416
is +$s, 4, '+$set gives sum of values (non-empty)';
417-
is $s.min, 1, '.min works (non-empty)';
418-
is $s.max, 1, '.max works (non-empty)';
417+
is $s.minpairs, [a=>True,b=>True,c=>True,d=>True], '.minpairs works (non-empty)';
418+
is $s.maxpairs, [a=>True,b=>True,c=>True,d=>True], '.maxpairs works (non-empty)';
419419

420420
my $e = ().SetHash;
421421
is $e.total, 0, '.total gives sum of values (empty)';
422422
is +$e, 0, '+$set gives sum of values (empty)';
423-
is $e.min, Inf, '.min works (empty)';
424-
is $e.max, -Inf, '.max works (empty)';
423+
is $e.minpairs, (), '.minpairs works (empty)';
424+
is $e.maxpairs, (), '.maxpairs works (empty)';
425425
}
426426

427427
# vim: ft=perl6

0 commit comments

Comments
 (0)