add begin.t from Method::Signatures
[p5sagit/Function-Parameters.git] / t / unicode2.t
CommitLineData
fd727b3e 1#!perl
2use utf8;
3use Test::More tests => 25;
4
5use warnings FATAL => 'all';
6use strict;
7
8use Function::Parameters { pŕöç => 'function_strict' };
9
10pŕöç hörps($x) { $x * 2 }
11pŕöç drau($spın̈al_tap) { $spın̈al_tap * 3 }
12pŕöç ääää($éééééé) { $éééééé * 4 }
13
14is hörps(10), 20;
15is drau(11), 33;
16is ääää(12), 48;
17
18is eval('pŕöç á(){} 1'), 1;
19is á(), undef;
20
21is eval('pŕöç ́(){} 1'), undef;
22like $@, qr/pŕöç.* function body/s;
23
24is eval(q<pŕöç 'hi(){} 1>), undef;
25like $@, qr/pŕöç.* function body/s;
26
27is eval('pŕöç ::hi($z){} 1'), 1;
28is hi(42), undef;
29
30is eval('pŕöç 123(){} 1'), undef;
31like $@, qr/pŕöç.* function body/s;
32
33is eval('pŕöç main::234(){} 1'), undef;
34like $@, qr/pŕöç.* function body/s;
35
36is eval('pŕöç m123($z){} 1'), 1;
37is m123(42), undef;
38
39is eval('pŕöç ::m234($z){} 1'), 1;
40is m234(42), undef;
41
42is eval { ääää }, undef;
43like $@, qr/pŕöç.*ääää/s;
44
45SKIP: {
46 eval { require Moo } or skip "info requires Moo", 4;
47
48 for my $info (Function::Parameters::info \&ääää) {
49 is $info->keyword, 'pŕöç';
50 is join(' ', $info->positional_required), '$éééééé';
51 }
52
53 for my $info (Function::Parameters::info \&drau) {
54 is $info->keyword, 'pŕöç';
55 is join(' ', $info->positional_required), '$spın̈al_tap';
56 }
57}