Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add tests for (Set|Bag|Mix)(|Hash).fmt
  • Loading branch information
lizmat committed May 21, 2014
1 parent f1b0f1e commit 7c27d66
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 22 deletions.
18 changes: 15 additions & 3 deletions S02-types/bag.t
@@ -1,7 +1,7 @@
use v6;
use Test;

plan 187;
plan 195;

sub showkv($x) {
$x.keys.sort.map({ $^k ~ ':' ~ $x{$k} }).join(' ')
Expand Down Expand Up @@ -393,14 +393,22 @@ sub showkv($x) {
"Method .Bag works on Parcel-2";
}

#?pugs skip '.total/.minpairs/.maxpairs NYI'
#?niecza skip '.total/.minpairs/.maxpairs NYI'
#?pugs skip '.total/.minpairs/.maxpairs/.fmt NYI'
#?niecza skip '.total/.minpairs/.maxpairs/.fmt NYI'
{
my $b1 = <a b b c c c d d d d>.Bag;
is $b1.total, 10, '.total gives sum of values (non-empty 10)';
is +$b1, 10, '+$bag gives sum of values (non-empty 10)';
is $b1.minpairs, [a=>1], '.minpairs works (non-empty 10)';
is $b1.maxpairs, [d=>4], '.maxpairs works (non-empty 10)';
is $b1.fmt('foo %s'), "foo a\nfoo b\nfoo c\nfoo d",
'.fmt(%s) works (non-empty 10)';
is $b1.fmt('%s',','), "a,b,c,d",
'.fmt(%s,sep) works (non-empty 10)';
is $b1.fmt('%s foo %s'), "a foo 1\nb foo 2\nc foo 3\nd foo 4",
'.fmt(%s%s) works (non-empty 10)';
is $b1.fmt('%s,%s',':'), "a,1:b,2:c,3:d,4",
'.fmt(%s%s,sep) works (non-empty 10)';

my $b2 = <a b c c c d d d>.Bag;
is $b2.total, 8, '.total gives sum of values (non-empty 8)';
Expand All @@ -419,6 +427,10 @@ sub showkv($x) {
is +$e, 0, '+$bag gives sum of values (empty)';
is $e.minpairs, (), '.minpairs works (empty)';
is $e.maxpairs, (), '.maxpairs works (empty)';
is $e.fmt('foo %s'), "", '.fmt(%s) works (empty)';
is $e.fmt('%s',','), "", '.fmt(%s,sep) works (empty)';
is $e.fmt('%s foo %s'), "", '.fmt(%s%s) works (empty)';
is $e.fmt('%s,%s',':'), "", '.fmt(%s%s,sep) works (empty)';
}

# vim: ft=perl6
20 changes: 15 additions & 5 deletions S02-types/baghash.t
@@ -1,7 +1,7 @@
use v6;
use Test;

plan 242;
plan 250;

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

Expand Down Expand Up @@ -524,14 +524,22 @@ sub showkv($x) {
"Method .BagHash works on Parcel-2";
}

#?pugs skip '.total/.minpairs/.maxpairs NYI'
#?niecza skip '.total/.minpairs/.maxpairs NYI'
#?pugs skip '.total/.minpairs/.maxpairs/.fmt NYI'
#?niecza skip '.total/.minpairs/.maxpairs/.fmt NYI'
{
my $b1 = <a b b c c c d d d d>.BagHash;
is $b1.total, 10, '.total gives sum of values (non-empty) 10';
is +$b1, 10, '+$bag gives sum of values (non-empty) 10';
is $b1.minpairs, [a=>1], '.minpairs works (non-empty) 10';
is $b1.maxpairs, [d=>4], '.maxpairs works (non-empty) 10';
is $b1.fmt('foo %s'), "foo a\nfoo b\nfoo c\nfoo d",
'.fmt(%s) works (non-empty 10)';
is $b1.fmt('%s',','), "a,b,c,d",
'.fmt(%s,sep) works (non-empty 10)';
is $b1.fmt('%s foo %s'), "a foo 1\nb foo 2\nc foo 3\nd foo 4",
'.fmt(%s%s) works (non-empty 10)';
is $b1.fmt('%s,%s',':'), "a,1:b,2:c,3:d,4",
'.fmt(%s%s,sep) works (non-empty 10)';

my $b2 = <a b c c c d d d>.BagHash;
is $b2.total, 8, '.total gives sum of values (non-empty) 8';
Expand All @@ -550,6 +558,8 @@ sub showkv($x) {
is +$e, 0, '+$bag gives sum of values (empty)';
is $e.minpairs, (), '.minpairs works (empty)';
is $e.maxpairs, (), '.maxpairs works (empty)';
is $e.fmt('foo %s'), "", '.fmt(%s) works (empty)';
is $e.fmt('%s',','), "", '.fmt(%s,sep) works (empty)';
is $e.fmt('%s foo %s'), "", '.fmt(%s%s) works (empty)';
is $e.fmt('%s,%s',':'), "", '.fmt(%s%s,sep) works (empty)';
}

# vim: ft=perl6
18 changes: 15 additions & 3 deletions S02-types/mix.t
@@ -1,7 +1,7 @@
use v6;
use Test;

plan 169;
plan 177;

sub showkv($x) {
$x.keys.sort.map({ $^k ~ ':' ~ $x{$k} }).join(' ')
Expand Down Expand Up @@ -350,14 +350,22 @@ sub showkv($x) {
"Method .Mix works on Parcel-2";
}

#?pugs skip '.total/.minpairs/.maxpairs NYI'
#?niecza skip '.total/.minpairs/.maxpairs NYI'
#?pugs skip '.total/.minpairs/.maxpairs/.fmt NYI'
#?niecza skip '.total/.minpairs/.maxpairs/.fmt NYI'
{
my $m1 = (a => 1.1, b => 2.2, c => 3.3, d => 4.4).Mix;
is $m1.total, 11, '.total gives sum of values (non-empty) 11';
is +$m1, 11, '+$set gives sum of values (non-empty) 11';
is $m1.minpairs, [a=>1.1], '.minpairs works (non-empty) 11';
is $m1.maxpairs, [d=>4.4], '.maxpairs works (non-empty) 11';
is $m1.fmt('foo %s'), "foo a\nfoo b\nfoo c\nfoo d",
'.fmt(%s) works (non-empty 11)';
is $m1.fmt('%s',','), "a,b,c,d",
'.fmt(%s,sep) works (non-empty 11)';
is $m1.fmt('%s foo %s'), "a foo 1.1\nb foo 2.2\nc foo 3.3\nd foo 4.4",
'.fmt(%s%s) works (non-empty 11)';
is $m1.fmt('%s,%s',':'), "a,1.1:b,2.2:c,3.3:d,4.4",
'.fmt(%s%s,sep) works (non-empty 11)';

my $m2 = (a => 1.1, b => 1.1, c => 3.3, d => 3.3).Mix;
is $m2.total, 8.8, '.total gives sum of values (non-empty) 8.8';
Expand All @@ -376,6 +384,10 @@ sub showkv($x) {
is +$e, 0, '+$mix gives sum of values (empty)';
is $e.minpairs, (), '.minpairs works (empty)';
is $e.maxpairs, (), '.maxpairs works (empty)';
is $e.fmt('foo %s'), "", '.fmt(%s) works (empty)';
is $e.fmt('%s',','), "", '.fmt(%s,sep) works (empty)';
is $e.fmt('%s foo %s'), "", '.fmt(%s%s) works (empty)';
is $e.fmt('%s,%s',':'), "", '.fmt(%s%s,sep) works (empty)';
}

# vim: ft=perl6
18 changes: 15 additions & 3 deletions S02-types/mixhash.t
@@ -1,7 +1,7 @@
use v6;
use Test;

plan 207;
plan 215;

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

Expand Down Expand Up @@ -438,14 +438,22 @@ sub showkv($x) {
"Method .MixHash works on Parcel-2";
}

#?pugs skip '.total/.minpairs/.maxpairs NYI'
#?niecza skip '.total/.minpairs/.maxpairs NYI'
#?pugs skip '.total/.minpairs/.maxpairs/.fmt NYI'
#?niecza skip '.total/.minpairs/.maxpairs/.fmt NYI'
{
my $m1 = (a => 1.1, b => 2.2, c => 3.3, d => 4.4).MixHash;
is $m1.total, 11, '.total gives sum of values (non-empty) 11';
is +$m1, 11, '+$mix gives sum of values (non-empty) 11';
is $m1.minpairs, [a=>1.1], '.minpairs works (non-empty) 11';
is $m1.maxpairs, [d=>4.4], '.maxpairs works (non-empty) 11';
is $m1.fmt('foo %s'), "foo a\nfoo b\nfoo c\nfoo d",
'.fmt(%s) works (non-empty 11)';
is $m1.fmt('%s',','), "a,b,c,d",
'.fmt(%s,sep) works (non-empty 11)';
is $m1.fmt('%s foo %s'), "a foo 1.1\nb foo 2.2\nc foo 3.3\nd foo 4.4",
'.fmt(%s%s) works (non-empty 11)';
is $m1.fmt('%s,%s',':'), "a,1.1:b,2.2:c,3.3:d,4.4",
'.fmt(%s%s,sep) works (non-empty 11)';

my $m2 = (a => 1.1, b => 1.1, c => 3.3, d => 3.3).MixHash;
is $m2.total, 8.8, '.total gives sum of values (non-empty) 8.8';
Expand All @@ -464,6 +472,10 @@ sub showkv($x) {
is +$e, 0, '+$mix gives sum of values (empty)';
is $e.minpairs, (), '.minpairs works (empty)';
is $e.maxpairs, (), '.maxpairs works (empty)';
is $e.fmt('foo %s'), "", '.fmt(%s) works (empty)';
is $e.fmt('%s',','), "", '.fmt(%s,sep) works (empty)';
is $e.fmt('%s foo %s'), "", '.fmt(%s%s) works (empty)';
is $e.fmt('%s,%s',':'), "", '.fmt(%s%s,sep) works (empty)';
}

# vim: ft=perl6
18 changes: 15 additions & 3 deletions S02-types/set.t
@@ -1,7 +1,7 @@
use v6;
use Test;

plan 159;
plan 167;

sub showset($s) { $s.keys.sort.join(' ') }

Expand Down Expand Up @@ -343,20 +343,32 @@ dies_ok { set(1, 2) «+» set(3, 4) }, 'Set «+» Set is illegal';
is showset((@a, %x).Set), "Now Paradise a b cross-handed set the was way", "Method .Set works on Parcel-2";
}

#?pugs skip '.total/.minpairs/.maxpairs NYI'
#?niecza skip '.total/.minpairs/.maxpairs NYI'
#?pugs skip '.total/.minpairs/.maxpairs/.fmt NYI'
#?niecza skip '.total/.minpairs/.maxpairs/.fmt NYI'
{
my $s = <a b b c c c d d d d>.Set;
is $s.total, 4, '.total gives sum of values (non-empty)';
is +$s, 4, '+$set gives sum of values (non-empty)';
is $s.minpairs.sort,[a=>True,b=>True,c=>True,d=>True], '.minpairs works (non-empty)';
is $s.maxpairs.sort,[a=>True,b=>True,c=>True,d=>True], '.maxpairs works (non-empty)';
is $s.fmt('foo %s'), "foo a\nfoo b\nfoo c\nfoo d",
'.fmt(%s) works (non-empty)';
is $s.fmt('%s',','), "a,b,c,d",
'.fmt(%s,sep) works (non-empty)';
is $s.fmt('%s foo %s'), "a foo True\nb foo True\nc foo True\nd foo True",
'.fmt(%s%s) works (non-empty)';
is $s.fmt('%s,%s',':'), "a,True:b,True:c,True:d,True",
'.fmt(%s%s,sep) works (non-empty)';

my $e = ().Set;
is $e.total, 0, '.total gives sum of values (empty)';
is +$e, 0, '+$set gives sum of values (empty)';
is $e.minpairs, (), '.minpairs works (empty)';
is $e.maxpairs, (), '.maxpairs works (empty)';
is $e.fmt('foo %s'), "", '.fmt(%s) works (empty)';
is $e.fmt('%s',','), "", '.fmt(%s,sep) works (empty)';
is $e.fmt('%s foo %s'), "", '.fmt(%s%s) works (empty)';
is $e.fmt('%s,%s',':'), "", '.fmt(%s%s,sep) works (empty)';
}

# vim: ft=perl6
20 changes: 15 additions & 5 deletions S02-types/sethash.t
@@ -1,7 +1,7 @@
use v6;
use Test;

plan 191;
plan 199;

# L<S02/Mutable types/"QuantHash of Bool">

Expand Down Expand Up @@ -408,20 +408,30 @@ sub showset($s) { $s.keys.sort.join(' ') }
is showset((@a, %x).SetHash), "Now Paradise a b cross-handed set the was way", "Method .SetHash works on Parcel-2";
}

#?pugs skip '.total/.minpairs/.maxpairs NYI'
#?niecza skip '.total/.minpairs/.maxpairs NYI'
#?pugs skip '.total/.minpairs/.maxpairs/.fmt NYI'
#?niecza skip '.total/.minpairs/.maxpairs/.fmt NYI'
{
my $s = <a b b c c c d d d d>.SetHash;
is $s.total, 4, '.total gives sum of values (non-empty)';
is +$s, 4, '+$set gives sum of values (non-empty)';
is $s.minpairs.sort, [a=>True,b=>True,c=>True,d=>True], '.minpairs works (non-empty)';
is $s.maxpairs.sort, [a=>True,b=>True,c=>True,d=>True], '.maxpairs works (non-empty)';
is $s.fmt('foo %s'), "foo a\nfoo b\nfoo c\nfoo d",
'.fmt(%s) works (non-empty)';
is $s.fmt('%s',','), "a,b,c,d",
'.fmt(%s,sep) works (non-empty)';
is $s.fmt('%s foo %s'), "a foo True\nb foo True\nc foo True\nd foo True",
'.fmt(%s%s) works (non-empty)';
is $s.fmt('%s,%s',':'), "a,True:b,True:c,True:d,True",
'.fmt(%s%s,sep) works (non-empty)';

my $e = ().SetHash;
is $e.total, 0, '.total gives sum of values (empty)';
is +$e, 0, '+$set gives sum of values (empty)';
is $e.minpairs, (), '.minpairs works (empty)';
is $e.maxpairs, (), '.maxpairs works (empty)';
is $e.fmt('foo %s'), "", '.fmt(%s) works (empty)';
is $e.fmt('%s',','), "", '.fmt(%s,sep) works (empty)';
is $e.fmt('%s foo %s'), "", '.fmt(%s%s) works (empty)';
is $e.fmt('%s,%s',':'), "", '.fmt(%s%s,sep) works (empty)';
}

# vim: ft=perl6

0 comments on commit 7c27d66

Please sign in to comment.