Skip to content

Commit cc7720a

Browse files
committed
adding advent 2013 day 20
1 parent 9191138 commit cc7720a

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

integration/advent2013-day20.t

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
use v6;
2+
use Test;
3+
plan 22;
4+
5+
{
6+
my $a = 42;
7+
is_deeply $a, 42, 'scalar assigment sanity';
8+
$a = Nil;
9+
is_deeply $a, Any, 'scalar reset sanity';
10+
}
11+
12+
{
13+
my $a is default(42);
14+
is_deeply $a, 42, 'scalar default value';
15+
ok $a.defined, 'scalar with default - defined';
16+
}
17+
18+
{
19+
my $a is default(42) = 69;
20+
is_deeply $a, 69, 'assigned scalar';
21+
$a = Nil;
22+
is_deeply $a, 42, 'assigned scalar reset';
23+
}
24+
25+
{
26+
my Bool @b is default(True);
27+
is_deeply @b[1000], True, 'array default';
28+
@b[1000]=False;
29+
is_deeply @b[1000], False, 'array default';
30+
}
31+
32+
eval_dies_ok 'my Bool $a is default(42)', 'eval type check';
33+
eval_lives_ok 'my Bool $a is default(True)', 'eval type check';
34+
35+
{
36+
my @a is default(42);
37+
is_deeply @a[0], 42, 'array default has value';
38+
ok @a[0].defined, 'array default is defined';
39+
is_deeply @a[0]:exists, False, '...but does not exist';
40+
}
41+
42+
eval_lives_ok 'my $a is default(Int) = "foo"', "default doesn't set type";
43+
eval_dies_ok 'my Int $a = "foo"', 'default typecheck';
44+
45+
{
46+
my @a is default(42) = 69;
47+
@a[0]:delete;
48+
is_deeply @a[0], 42, 'deleted value';
49+
is_deeply @a[0]:exists, False, 'deleted !exists';
50+
}
51+
52+
{
53+
my $a is default(Nil) = 42;
54+
is_deeply $a, 42, 'Nil as default';
55+
$a = Nil;
56+
is_deeply $a, Nil, 'Nil as default';
57+
}
58+
59+
{
60+
my @a is default(42);
61+
is_deeply @a.VAR.default, 42, 'VAR introspection (default)';
62+
is_deeply $/.VAR.default, Nil, 'VAR introspection (default)';
63+
is_deeply $/.VAR.dynamic, True, 'VAR introspection (dynamic)';
64+
}

0 commit comments

Comments
 (0)