-
Notifications
You must be signed in to change notification settings - Fork 135
/
delete.t
62 lines (47 loc) · 1.25 KB
/
delete.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
use v6;
use Test;
plan 11;
# L<S02/Names and Variables/:delete>
sub gen_hash {
my %h;
my $i = 0;
for 'a'..'z' { %h{$_} = ++$i; }
return %h;
}
{
my %h1 = gen_hash;
my $b = %h1<b>;
is %h1.delete('b'), $b, "Test for delete single key.";
}
#?niecza todo
{
my %h1 = gen_hash;
my @cde = %h1<c d e>;
is %h1.delete(<c d e>), @cde, "test for delete multiple keys.";
}
my %hash = (a => 1, b => 2, c => 3, d => 4);
is +%hash, 4, "basic sanity (2)";
is ~(%hash.delete('a')), "1",
"deletion of a hash element returned the right value";
is +%hash, 3, "deletion of a hash element";
#?niecza skip 'Excess arguments to CORE Hash.delete, used 2 of 3 positionals'
{
is ~(%hash.delete("c", "d")), "3 4",
"deletion of hash elements returned the right values";
is +%hash, 1, "deletion of hash elements";
}
ok !defined(%hash{"a"}), "deleted hash elements are really deleted";
{
my $a = 1;
eval_dies_ok '$a.delete', "Can't :delete a scalar";
}
# RT #68482
{
my %rt68482 = 1 => 3;
is %rt68482.delete(1).WHAT.gist, 3.WHAT.gist, '.delete.WHAT is the element';
%rt68482 = 1 => 3;
my $rt68482 = %rt68482.delete(1);
is $rt68482.WHAT.gist, 3.WHAT.gist, '.WHAT of stored .delete is the element';
}
done;
# vim: ft=perl6