Commit | Line | Data |
---|---|---|
423cee85 JH |
1 | #!./perl |
2 | ||
3 | BEGIN { | |
4 | unless(grep /blib/, @INC) { | |
5 | chdir 't' if -d 't'; | |
20822f61 | 6 | @INC = '../lib'; |
423cee85 JH |
7 | } |
8 | } | |
9 | ||
10 | $| = 1; | |
f9a63242 | 11 | print "1..14\n"; |
423cee85 JH |
12 | |
13 | use charnames ':full'; | |
14 | ||
f70c35af | 15 | print "not " unless "Here\N{EXCLAMATION MARK}?" eq "Here\041?"; |
423cee85 JH |
16 | print "ok 1\n"; |
17 | ||
c82a54e6 | 18 | { |
5d9a6404 | 19 | use bytes; # TEST -utf8 can switch utf8 on |
c82a54e6 IZ |
20 | |
21 | print "# \$res=$res \$\@='$@'\nnot " | |
22 | if $res = eval <<'EOE' | |
423cee85 | 23 | use charnames ":full"; |
4a2d328f | 24 | "Here: \N{CYRILLIC SMALL LETTER BE}!"; |
423cee85 JH |
25 | 1 |
26 | EOE | |
c82a54e6 IZ |
27 | or $@ !~ /above 0xFF/; |
28 | print "ok 2\n"; | |
29 | # print "# \$res=$res \$\@='$@'\n"; | |
423cee85 | 30 | |
c82a54e6 IZ |
31 | print "# \$res=$res \$\@='$@'\nnot " |
32 | if $res = eval <<'EOE' | |
423cee85 | 33 | use charnames 'cyrillic'; |
4a2d328f | 34 | "Here: \N{Be}!"; |
423cee85 JH |
35 | 1 |
36 | EOE | |
c82a54e6 IZ |
37 | or $@ !~ /CYRILLIC CAPITAL LETTER BE.*above 0xFF/; |
38 | print "ok 3\n"; | |
39 | } | |
423cee85 JH |
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"; | |
c5cc3500 GS |
45 | |
46 | sub to_bytes { | |
f9a63242 | 47 | pack"a*", shift; |
c5cc3500 GS |
48 | } |
49 | ||
423cee85 JH |
50 | { |
51 | use charnames ':full'; | |
423cee85 | 52 | |
c5cc3500 | 53 | print "not " unless to_bytes("\N{CYRILLIC SMALL LETTER BE}") eq $encoded_be; |
423cee85 JH |
54 | print "ok 4\n"; |
55 | ||
56 | use charnames qw(cyrillic greek :short); | |
57 | ||
c5cc3500 | 58 | print "not " unless to_bytes("\N{be},\N{alpha},\N{hebrew:bet}") |
423cee85 JH |
59 | eq "$encoded_be,$encoded_alpha,$encoded_bet"; |
60 | print "ok 5\n"; | |
61 | } | |
e1992b6d GS |
62 | |
63 | { | |
64 | use charnames ':full'; | |
65 | print "not " unless "\x{263a}" eq "\N{WHITE SMILING FACE}"; | |
66 | print "ok 6\n"; | |
67 | print "not " unless length("\x{263a}") == 1; | |
68 | print "ok 7\n"; | |
69 | print "not " unless length("\N{WHITE SMILING FACE}") == 1; | |
70 | print "ok 8\n"; | |
71 | print "not " unless sprintf("%vx", "\x{263a}") eq "263a"; | |
72 | print "ok 9\n"; | |
73 | print "not " unless sprintf("%vx", "\N{WHITE SMILING FACE}") eq "263a"; | |
74 | print "ok 10\n"; | |
f08d6ad9 GS |
75 | print "not " unless sprintf("%vx", "\xFF\N{WHITE SMILING FACE}") eq "ff.263a"; |
76 | print "ok 11\n"; | |
77 | print "not " unless sprintf("%vx", "\x{ff}\N{WHITE SMILING FACE}") eq "ff.263a"; | |
78 | print "ok 12\n"; | |
e1992b6d | 79 | } |
c00525d4 SP |
80 | |
81 | { | |
82 | use charnames qw(:full); | |
83 | use utf8; | |
84 | ||
85 | my $x = "\x{221b}"; | |
86 | my $named = "\N{CUBE ROOT}"; | |
87 | ||
88 | print "not " unless ord($x) == ord($named); | |
89 | print "ok 13\n"; | |
90 | } | |
91 | ||
f9a63242 JH |
92 | { |
93 | use charnames qw(:full); | |
94 | use utf8; | |
95 | print "not " unless "\x{100}\N{CENT SIGN}" eq "\x{100}"."\N{CENT SIGN}"; | |
96 | print "ok 14\n"; | |
97 | } | |
98 |