forked from Raku/roast
-
Notifications
You must be signed in to change notification settings - Fork 0
/
push.t
37 lines (28 loc) · 963 Bytes
/
push.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use v6;
use Test;
plan 7;
# L<S32::Containers/Hash/"Like hash assignment insofar">
my %ref1 = (a => 1, b => 2, c => 3);
my %ref2 = (a => [1, 4, 5], b => 2, c => 3);
{
my ($r, %x);
$r = %x.push: 'a' => 1;
is $r.WHAT.gist, Hash.gist, 'Hash.push returns hash';
my %h;
%h.push: 'b', 2, 'a', 1, 'c', 3;
is_deeply %h, %ref1, 'basic Hash.push with alternating items';
%h.push: (:a(4), :a(5));
is_deeply %h, %ref2, 'stacking push works with pairs';
my %g;
%g.push: (a => 1), (c => 3), (b => 2);
is_deeply %g, %ref1, 'basic Hash.push with pairs ';
%g.push: 'a', 4, 'a', 5;
is_deeply %g, %ref2, 'stacking push worsk with alternating items';
my %hh;
%hh.push: 5, 'bar';
is_deeply %hh, { 5 => 'bar' }, 'Hash.push works pushing a non-Str-keyed alternating items';
my %gg;
%gg.push: 5 => 'bar';
is_deeply %gg, { 5 => 'bar' }, 'Hash.push works pushing a non-Str-keyed Pair';
}
# vim: ft=perl6