Commit | Line | Data |
39f4556f |
1 | |
2 | BEGIN { |
3 | unless ("A" eq pack('U', 0x41)) { |
4 | print "1..0 # Unicode::Normalize " . |
5 | "cannot stringify a Unicode code point\n"; |
6 | exit 0; |
7 | } |
8 | } |
9 | |
10 | BEGIN { |
11 | if ($ENV{PERL_CORE}) { |
12 | chdir('t') if -d 't'; |
13 | @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); |
14 | } |
15 | } |
16 | |
17 | ######################### |
18 | |
19 | BEGIN { |
20 | use Unicode::Normalize qw(:all); |
21 | |
22 | unless (exists &Unicode::Normalize::bootstrap or 5.008 <= $]) { |
23 | print "1..0 # skipped: XSUB, or Perl 5.8.0 or later". |
24 | " needed for this test\n"; |
25 | print $@; |
26 | exit; |
27 | } |
28 | } |
29 | |
30 | use Test; |
31 | use strict; |
32 | use warnings; |
33 | BEGIN { plan tests => 16 }; |
34 | |
35 | package tiescalar; |
36 | sub TIESCALAR { |
37 | my ($class, $instance) = @_; |
38 | return bless \$instance => $class; |
39 | } |
40 | sub FETCH { return ${$_[0]}++ } |
41 | sub STORE { return ${$_[0]} = $_[1] } |
42 | sub DESTROY { undef ${$_[0]} } |
43 | |
44 | ######################### |
45 | |
46 | package main; |
47 | |
48 | tie my $tie1, 'tiescalar', "123"; |
49 | ok(NFD($tie1), 123); |
50 | ok(NFC($tie1), 124); |
51 | ok(NFKD($tie1), 125); |
52 | ok(NFKC($tie1), 126); |
53 | ok(FCD($tie1), 127); |
54 | ok(FCC($tie1), 128); |
55 | |
56 | tie my $tie2, 'tiescalar', "256"; |
57 | ok(normalize('NFD', $tie2), 256); |
58 | ok(normalize('NFC', $tie2), 257); |
59 | ok(normalize('NFKD', $tie2), 258); |
60 | ok(normalize('NFKC', $tie2), 259); |
61 | ok(normalize('FCD', $tie2), 260); |
62 | ok(normalize('FCC', $tie2), 261); |
63 | |
64 | tie my $tie3, 'tiescalar', "315"; |
65 | ok(decompose($tie3), 315); |
66 | ok(reorder($tie3), 316); |
67 | ok(compose($tie3), 317); |
68 | ok(composeContiguous($tie3), 318); |
69 | |