|
1 | 1 | use v6;
|
2 | 2 | use Test;
|
3 | 3 |
|
4 |
| -plan 265; |
| 4 | +plan 274; |
5 | 5 |
|
6 | 6 | # L<S02/Mutable types/QuantHash of UInt>
|
7 | 7 |
|
@@ -606,4 +606,43 @@ subtest 'BagHash autovivification of non-existent keys' => {
|
606 | 606 | is-deeply $bh5<as>, 2, 'correct result of assignment';
|
607 | 607 | }
|
608 | 608 |
|
| 609 | +{ |
| 610 | + my $bh = <a a a>.BagHash; |
| 611 | + for $bh.values { $_-- } |
| 612 | + is $bh, "a(2)", |
| 613 | + 'Can use $_ from .values to remove occurrences from BagHash'; |
| 614 | + for $bh.values { $_ = 42 } |
| 615 | + is $bh, "a(42)", |
| 616 | + 'Can use $_ from .values to set number occurrences in BagHash'; |
| 617 | + for $bh.values { $_ = 0 } |
| 618 | + is $bh, "", |
| 619 | + 'Can use $_ from .values to remove items from BagHash'; |
| 620 | +} |
| 621 | + |
| 622 | +{ |
| 623 | + my $bh = <a a a>.BagHash; |
| 624 | + for $bh.kv -> \k, \v { v-- } |
| 625 | + is $bh, "a(2)", |
| 626 | + 'Can use value from .kv to remove occurrences from BagHash'; |
| 627 | + for $bh.kv -> \k, \v { v = 42 } |
| 628 | + is $bh, "a(42)", |
| 629 | + 'Can use value from .kv to set number occurrences in BagHash'; |
| 630 | + for $bh.kv -> \k, \v { v = 0 } |
| 631 | + is $bh, "", |
| 632 | + 'Can use $_ from .kv to remove items from BagHash'; |
| 633 | +} |
| 634 | + |
| 635 | +{ |
| 636 | + my $bh = <a a a>.BagHash; |
| 637 | + for $bh.pairs { .value-- } |
| 638 | + is $bh, "a(2)", |
| 639 | + 'Can use value from .pairs to remove occurrences from BagHash'; |
| 640 | + for $bh.pairs { .value = 42 } |
| 641 | + is $bh, "a(42)", |
| 642 | + 'Can use value from .pairs to set number occurrences in BagHash'; |
| 643 | + for $bh.pairs { .value = 0 } |
| 644 | + is $bh, "", |
| 645 | + 'Can use $_ from .pairs to remove items from BagHash'; |
| 646 | +} |
| 647 | + |
609 | 648 | # vim: ft=perl6
|
0 commit comments