This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
f4d95771c008b46ec1198ae955bb0053114d89f5
[perl5.git] / t / lib / charnames.t
1 #!./perl
2
3 BEGIN {
4     unless(grep /blib/, @INC) {
5         chdir 't' if -d 't';
6         unshift @INC, '../lib' if -d '../lib';
7     }
8 }
9
10 $| = 1;
11 print "1..5\n";
12
13 use charnames ':full';
14
15 print "not " unless "Here\N{EXCLAMATION MARK}?" eq "Here\041?";
16 print "ok 1\n";
17
18 {
19   use bytes;                    # UTEST can switch utf8 on
20
21   print "# \$res=$res \$\@='$@'\nnot "
22     if $res = eval <<'EOE'
23 use charnames ":full";
24 "Here: \N{CYRILLIC SMALL LETTER BE}!";
25 1
26 EOE
27       or $@ !~ /above 0xFF/;
28   print "ok 2\n";
29   # print "# \$res=$res \$\@='$@'\n";
30
31   print "# \$res=$res \$\@='$@'\nnot "
32     if $res = eval <<'EOE'
33 use charnames 'cyrillic';
34 "Here: \N{Be}!";
35 1
36 EOE
37       or $@ !~ /CYRILLIC CAPITAL LETTER BE.*above 0xFF/;
38   print "ok 3\n";
39 }
40
41 # If octal representation of unicode char is \0xyzt, then the utf8 is \3xy\2zt
42 $encoded_be = "\320\261";
43 $encoded_alpha = "\316\261";
44 $encoded_bet = "\327\221";
45 {
46   use charnames ':full';
47   use utf8;
48
49   print "not " unless "\N{CYRILLIC SMALL LETTER BE}" eq $encoded_be;
50   print "ok 4\n";
51
52   use charnames qw(cyrillic greek :short);
53
54   print "not " unless "\N{be},\N{alpha},\N{hebrew:bet}" 
55     eq "$encoded_be,$encoded_alpha,$encoded_bet";
56   print "ok 5\n";
57 }