@@ -12,6 +12,7 @@ sub showkv($x) {
12
12
{
13
13
my $ b = bag <a foo a a a a b foo >;
14
14
isa-ok $ b , Bag , ' &bag produces a Bag' ;
15
+ # ?rakudo.jvm skip 'NPE'
15
16
is showkv($ b ), ' a:5 b:1 foo:2' , ' ...with the right elements' ;
16
17
17
18
is $ b . default, 0 , " Defaults to 0" ;
@@ -31,6 +32,7 @@ sub showkv($x) {
31
32
lives-ok { $ hash = $ b . hash },
32
33
" .hash doesn't die" ;
33
34
isa-ok $ hash , Hash , " ...and it returned a Hash" ;
35
+ # ?rakudo.jvm skip 'NPE'
34
36
is showkv($ hash ), ' a:5 b:1 foo:2' , ' ...with the right elements' ;
35
37
36
38
throws-like { $ b <a > = 5 },
@@ -70,18 +72,25 @@ sub showkv($x) {
70
72
71
73
{
72
74
isa-ok " a" . Bag , Bag , " Str.Bag makes a Bag" ;
75
+ # ?rakudo.jvm skip 'NPE'
73
76
is showkv(" a" . Bag ), ' a:1' , " 'a'.Bag is bag a" ;
74
77
75
78
isa-ok (a => 100000 ). Bag , Bag , " Pair.Bag makes a Bag" ;
79
+ # ?rakudo.jvm skip 'NPE'
76
80
is showkv((a => 100000 ). Bag ), ' a:100000' , " (a => 100000).Bag is bag a:100000" ;
81
+ # ?rakudo.jvm skip 'NPE'
77
82
is showkv((a => 0 ). Bag ), ' ' , " (a => 0).Bag is the empty bag" ;
78
83
79
84
isa-ok <a b c >. Bag , Bag , " <a b c>.Bag makes a Bag" ;
85
+ # ?rakudo.jvm skip 'NPE'
80
86
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" ;
87
+ # ?rakudo.jvm skip 'NPE'
81
88
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" ;
89
+ # ?rakudo.jvm skip 'NPE'
82
90
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" ;
83
91
84
92
isa-ok {a => 2 , b => 4 , c => 0 }. Bag , Bag , " { a => 2 , b => 4 , c => 0 } .Bag makes a Bag" ;
93
+ # ?rakudo.jvm skip 'NPE'
85
94
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" ;
86
95
}
87
96
@@ -114,12 +123,14 @@ sub showkv($x) {
114
123
{
115
124
my % h := bag <a b o p a p o o >;
116
125
ok % h ~~ Bag , ' A hash to which a Bag has been bound becomes a Bag' ;
126
+ # ?rakudo.jvm skip 'NPE'
117
127
is showkv(% h ), ' a:2 b:1 o:3 p:2' , ' ...with the right elements' ;
118
128
}
119
129
120
130
{
121
131
my $ b = bag <a b o p a p o o >;
122
132
isa-ok $ b , Bag , ' &Bag.new given an array of strings produces a Bag' ;
133
+ # ?rakudo.jvm skip 'NPE'
123
134
is showkv($ b ), ' a:2 b:1 o:3 p:2' , ' ...with the right elements' ;
124
135
}
125
136
@@ -155,6 +166,7 @@ sub showkv($x) {
155
166
is + $ b , 1 , " ... with one element" ;
156
167
}
157
168
169
+ # ?rakudo.jvm skip 'NPE'
158
170
{
159
171
my $ b = bag set <foo bar foo bar baz foo >;
160
172
isa-ok $ b , Bag , ' &Bag.new given a Set produces a Bag' ;
@@ -169,12 +181,14 @@ sub showkv($x) {
169
181
}
170
182
171
183
# ?niecza skip 'BagHash'
184
+ # ?rakudo.jvm skip 'NPE'
172
185
{
173
186
my $ b = bag BagHash . new (<foo bar foo bar baz foo >);
174
187
isa-ok $ b , Bag , ' &Bag.new given a BagHash produces a Bag' ;
175
188
is + $ b , 1 , " ... with one element" ;
176
189
}
177
190
191
+ # ?rakudo.jvm skip 'NPE'
178
192
{
179
193
my $ b = bag set <foo bar foo bar baz foo >;
180
194
isa-ok $ b , Bag , ' &bag given a Set produces a Bag' ;
@@ -186,6 +200,7 @@ sub showkv($x) {
186
200
{
187
201
my % b := bag <a b c b >;
188
202
isa-ok % b , Bag , ' A Bag bound to a %var is a Bag' ;
203
+ # ?rakudo.jvm skip 'NPE'
189
204
is showkv(% b ), ' a:1 b:2 c:1' , ' ...with the right elements' ;
190
205
191
206
is % b <b >, 2 , ' Single-key subscript (existing element)' ;
@@ -228,6 +243,7 @@ sub showkv($x) {
228
243
lives-ok { $ c = EVAL $ s },
229
244
" .perl.EVAL lives" ;
230
245
isa-ok $ c , Bag , " ... and produces a Bag" ;
246
+ # ?rakudo.jvm skip 'NPE'
231
247
is showkv($ c ), showkv($ b ), " ... and it has the correct values" ;
232
248
}
233
249
@@ -237,6 +253,7 @@ sub showkv($x) {
237
253
lives-ok { $ s = $ b . Str },
238
254
" .Str lives" ;
239
255
isa-ok $ s , Str , " ... and produces a string" ;
256
+ # ?rakudo.jvm skip 'NPE'
240
257
is $ s . split (" " ). sort . join (" " ), " bar(3) baz foo(2)" , " ... which only contains bar baz and foo with the proper counts and separated by spaces" ;
241
258
}
242
259
@@ -257,6 +274,7 @@ sub showkv($x) {
257
274
{
258
275
my % b := bag " a" , " b" , " c" , " b" ;
259
276
isa-ok % b , Bag , ' A Bag bound to a %var is a Bag' ;
277
+ # ?rakudo.jvm skip 'NPE'
260
278
is showkv(% b ), ' a:1 b:2 c:1' , ' ...with the right elements' ;
261
279
262
280
is % b <b >, 2 , ' Single-key subscript (existing element)' ;
@@ -375,6 +393,7 @@ sub showkv($x) {
375
393
' cannot call .grabpairs on a Bag' ;
376
394
}
377
395
396
+ # ?rakudo.jvm skip 'NPE'
378
397
{
379
398
my $ b1 = Bag . new ( (bag <a b c >) , <c c c d d d d >);
380
399
is + $ b1 , 2 , " Two elements" ;
@@ -400,16 +419,21 @@ sub showkv($x) {
400
419
401
420
{
402
421
isa-ok 42 . Bag , Bag , " Method .Bag works on Int-1" ;
422
+ # ?rakudo.jvm skip 'NPE'
403
423
is showkv(42 . Bag ), " 42:1" , " Method .Bag works on Int-2" ;
404
424
isa-ok " blue" . Bag , Bag , " Method .Bag works on Str-1" ;
425
+ # ?rakudo.jvm skip 'NPE'
405
426
is showkv(" blue" . Bag ), " blue:1" , " Method .Bag works on Str-2" ;
406
427
my @ a = <Now the cross-handed set was the Paradise way >;
407
428
isa-ok @ a . Bag , Bag , " Method .Bag works on Array-1" ;
429
+ # ?rakudo.jvm skip 'NPE'
408
430
is showkv(@ a . Bag ), " Now:1 Paradise:1 cross-handed:1 set:1 the:2 was:1 way:1" , " Method .Bag works on Array-2" ;
409
431
my % x = " a" => 1 , " b" => 2 ;
410
432
isa-ok % x . Bag , Bag , " Method .Bag works on Hash-1" ;
433
+ # ?rakudo.jvm skip 'NPE'
411
434
is showkv(% x . Bag ), " a:1 b:2" , " Method .Bag works on Hash-2" ;
412
435
isa-ok (@ a , % x ). Bag , Bag , " Method .Bag works on List-1" ;
436
+ # ?rakudo.jvm skip 'NPE'
413
437
is showkv((@ a , % x ). Bag ), " Now:1 Paradise:1 a:1 b:2 cross-handed:1 set:1 the:2 was:1 way:1" ,
414
438
" Method .Bag works on List-2" ;
415
439
}
@@ -422,6 +446,7 @@ sub showkv($x) {
422
446
is $ b1 . minpairs, [a => 1], ' .minpairs works (non-empty 10)' ;
423
447
is $ b1 . maxpairs, [d => 4], ' .maxpairs works (non-empty 10)' ;
424
448
# Bag is unordered according to S02:1476
449
+ # ?rakudo.jvm 4 skip 'NPE'
425
450
is $ b1 . fmt (' foo %s' ). split (" \n " ). sort , (' foo a' , ' foo b' , ' foo c' , ' foo d' ),
426
451
' .fmt(%s) works (non-empty 10)' ;
427
452
is $ b1 . fmt (' %s' ,' ,' ). split (' ,' ). sort , <a b c d >,
@@ -434,18 +459,21 @@ sub showkv($x) {
434
459
my $ b2 = <a b c c c d d d >. Bag ;
435
460
is $ b2 . total, 8 , ' .total gives sum of values (non-empty 8)' ;
436
461
is + $ b2 , 8 , ' +$bag gives sum of values (non-empty 8)' ;
462
+ # ?rakudo.jvm 2 skip 'NPE'
437
463
is $ b2 . minpairs. sort , [a => 1, b => 1], ' .minpairs works (non-empty 8)' ;
438
464
is $ b2 . maxpairs. sort , [c => 3, d => 3], ' .maxpairs works (non-empty 8)' ;
439
465
440
466
$ b2 = <a b c d >. Bag ;
441
467
is $ b2 . total, 4 , ' .total gives sum of values (non-empty 4)' ;
442
468
is + $ b2 , 4 , ' +$bag gives sum of values (non-empty 4)' ;
469
+ # ?rakudo.jvm 2 skip 'NPE'
443
470
is $ b2 . minpairs. sort ,[a => 1,b => 1,c => 1,d => 1], ' .minpairs works (non-empty 4)' ;
444
471
is $ b2 . maxpairs. sort ,[a => 1,b => 1,c => 1,d => 1], ' .maxpairs works (non-empty 4)' ;
445
472
446
473
my $ e = (). Bag ;
447
474
is $ e . total, 0 , ' .total gives sum of values (empty)' ;
448
475
is + $ e , 0 , ' +$bag gives sum of values (empty)' ;
476
+ # ?rakudo.jvm 6 skip 'NPE'
449
477
is $ e . minpairs, (), ' .minpairs works (empty)' ;
450
478
is $ e . maxpairs, (), ' .maxpairs works (empty)' ;
451
479
is $ e . fmt (' foo %s' ), " " , ' .fmt(%s) works (empty)' ;
@@ -454,13 +482,15 @@ sub showkv($x) {
454
482
is $ e . fmt (' %s,%s' ,' :' ), " " , ' .fmt(%s%s,sep) works (empty)' ;
455
483
}
456
484
457
- # ?rakudo todo 'we have not secured .WHICH creation yet RT #124454'
485
+ # ?rakudo.moar todo 'we have not secured .WHICH creation yet RT #124454'
486
+ # ?rakudo.jvm skip 'NPE'
458
487
{
459
488
isnt ' a(1) Str|b(1) Str|c' . Bag . WHICH , <a b c >. Bag . WHICH ,
460
489
' Faulty .WHICH creation' ;
461
490
}
462
491
463
492
# RT #117915
493
+ # ?rakudo.jvm skip 'NPE'
464
494
{
465
495
my @ pairings ;
466
496
my Bag $ bag .= new : <foo foo bar >;
@@ -478,6 +508,7 @@ sub showkv($x) {
478
508
my class MyBag is Bag { }
479
509
my $ b = MyBag. new (| <a foo a a a a b foo >);
480
510
isa-ok $ b , MyBag, ' MyBag.new produces a MyBag' ;
511
+ # ?rakudo.jvm skip 'NPE'
481
512
is showkv($ b ), ' a:5 b:1 foo:2' , ' ...with the right elements' ;
482
513
}
483
514
@@ -500,6 +531,7 @@ sub showkv($x) {
500
531
' Make sure we cannot assign on a .kv alias' ;
501
532
}
502
533
534
+ # ?rakudo.jvm skip 'NPE'
503
535
{
504
536
my $ b = <a b b c c c d d d d >. Bag ;
505
537
my @ a1 ;
0 commit comments