From b0f6ccbc0abd7101a37f12df29b7a55034582385 Mon Sep 17 00:00:00 2001 From: Solomon Foster Date: Thu, 6 Jun 2013 18:44:55 -0400 Subject: [PATCH] Some basic .KeySet and .Bag tests. --- S02-types/bag.t | 20 +++++++++++++++++++- S02-types/keyset.t | 20 +++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/S02-types/bag.t b/S02-types/bag.t index 04ec2481cd..e7650e4bcb 100644 --- a/S02-types/bag.t +++ b/S02-types/bag.t @@ -1,7 +1,7 @@ use v6; use Test; -plan 114; +plan 125; sub showkv($x) { $x.keys.sort.map({ $^k ~ ':' ~ $x{$k} }).join(' ') @@ -44,6 +44,24 @@ sub showkv($x) { is +$b, 8, '+$bag gives sum of values'; } +#?rakudo skip ".Set NYI" +{ + isa_ok "a".Bag, Bag, "Str.Bag makes a Bag"; + is showkv("a".Bag), 'a:1', "'a'.Bag is bag a"; + + isa_ok (a => 100000).Bag, Bag, "Pair.Bag makes a Bag"; + is showkv((a => 100000).Bag), 'a:100000', "(a => 100000).Bag is bag a:100000"; + is showkv((a => 0).Bag), '', "(a => 0).Bag is the empty bag"; + + isa_ok .Bag, Bag, ".Bag makes a Bag"; + is showkv(.Bag), 'a:2 b:1 c:1', ".Bag makes the bag a:2 b:1 c:1"; + is showkv(["a", "b", "c", "a"].Bag), 'a:2 b:1 c:1', "[a b c a].Bag makes the bag a:2 b:1 c:1"; + is showkv([a => 3, b => 0, 'c', 'a'].Bag), 'a:4 c:1', "[a => 3, b => 0, 'c', 'a'].Bag makes the bag a:4 c:1"; + + isa_ok {a => 2, b => 4, c => 0}.Bag, Bag, "{a => 2, b => 4, c => 0}.Bag makes a Bag"; + is showkv({a => 2, b => 4, c => 0}.Bag), 'a:2 b:4', "{a => 2, b => 4, c => 0}.Bag makes the bag a:2 b:4"; +} + { my $s = bag ; is $s:exists, True, ':exists with existing element'; diff --git a/S02-types/keyset.t b/S02-types/keyset.t index 24150e1157..704ed34390 100644 --- a/S02-types/keyset.t +++ b/S02-types/keyset.t @@ -1,7 +1,7 @@ use v6; use Test; -plan 111; +plan 122; # L @@ -68,6 +68,24 @@ sub showset($s) { $s.keys.sort.join(' ') } is showset($s), 'a foo', '... but only if they were there to start with'; } +#?rakudo skip ".Set NYI" +{ + isa_ok "a".KeySet, KeySet, "Str.KeySet makes a KeySet"; + is showset("a".KeySet), 'a', "'a'.KeySet is set a"; + + isa_ok (a => 1).KeySet, KeySet, "Pair.KeySet makes a KeySet"; + is showset((a => 1).KeySet), 'a', "(a => 1).KeySet is set a"; + is showset((a => 0).KeySet), '', "(a => 0).KeySet is the empty set"; + + isa_ok .KeySet, KeySet, ".KeySet makes a KeySet"; + is showset(.KeySet), 'a b c', ".KeySet makes the set a b c"; + is showset(["a", "b", "c", "a"].KeySet), 'a b c', "[a b c a].KeySet makes the set a b c"; + is showset([a => 3, b => 0, 'c', 'a'].KeySet), 'a c', "[a => 3, b => 0, 'c', 'a'].KeySet makes the set a c"; + + isa_ok {a => 2, b => 4, c => 0}.KeySet, KeySet, "{a => 2, b => 4, c => 0}.KeySet makes a KeySet"; + is showset({a => 2, b => 4, c => 0}.KeySet), 'a b', "{a => 2, b => 4, c => 0}.KeySet makes the set a b"; +} + { my $s = KeySet.new(); is $s:exists, True, ':exists with existing element';