Commit | Line | Data |
82e740b6 |
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}) { |
628bbff0 |
12 | chdir('t') if -d 't'; |
13 | @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); |
82e740b6 |
14 | } |
15 | } |
16 | |
17 | ######################### |
18 | |
19 | use Test; |
20 | use strict; |
21 | use warnings; |
22 | BEGIN { plan tests => 37 }; |
23 | use Unicode::Normalize qw(:all); |
24 | ok(1); # If we made it this far, we're ok. |
25 | |
26 | sub answer { defined $_[0] ? $_[0] ? "YES" : "NO" : "MAYBE" } |
27 | |
28 | ######################### |
29 | |
30 | ok(NFD ("\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}"); |
31 | ok(NFC ("\x{304C}\x{FF76}"), "\x{304C}\x{FF76}"); |
32 | ok(NFKD("\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}"); |
33 | ok(NFKC("\x{304C}\x{FF76}"), "\x{304C}\x{30AB}"); |
34 | |
35 | ok(answer(checkNFD ("\x{304C}")), "NO"); |
36 | ok(answer(checkNFC ("\x{304C}")), "YES"); |
37 | ok(answer(checkNFKD("\x{304C}")), "NO"); |
38 | ok(answer(checkNFKC("\x{304C}")), "YES"); |
39 | ok(answer(checkNFD ("\x{FF76}")), "YES"); |
40 | ok(answer(checkNFC ("\x{FF76}")), "YES"); |
41 | ok(answer(checkNFKD("\x{FF76}")), "NO"); |
42 | ok(answer(checkNFKC("\x{FF76}")), "NO"); |
43 | |
44 | ok(normalize('D', "\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}"); |
45 | ok(normalize('C', "\x{304C}\x{FF76}"), "\x{304C}\x{FF76}"); |
46 | ok(normalize('KD',"\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}"); |
47 | ok(normalize('KC',"\x{304C}\x{FF76}"), "\x{304C}\x{30AB}"); |
48 | |
49 | ok(answer(check('D', "\x{304C}")), "NO"); |
50 | ok(answer(check('C', "\x{304C}")), "YES"); |
51 | ok(answer(check('KD',"\x{304C}")), "NO"); |
52 | ok(answer(check('KC',"\x{304C}")), "YES"); |
53 | ok(answer(check('D' ,"\x{FF76}")), "YES"); |
54 | ok(answer(check('C' ,"\x{FF76}")), "YES"); |
55 | ok(answer(check('KD',"\x{FF76}")), "NO"); |
56 | ok(answer(check('KC',"\x{FF76}")), "NO"); |
57 | |
58 | ok(normalize('NFD', "\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{FF76}"); |
59 | ok(normalize('NFC', "\x{304C}\x{FF76}"), "\x{304C}\x{FF76}"); |
60 | ok(normalize('NFKD',"\x{304C}\x{FF76}"), "\x{304B}\x{3099}\x{30AB}"); |
61 | ok(normalize('NFKC',"\x{304C}\x{FF76}"), "\x{304C}\x{30AB}"); |
62 | |
63 | ok(answer(check('NFD', "\x{304C}")), "NO"); |
64 | ok(answer(check('NFC', "\x{304C}")), "YES"); |
65 | ok(answer(check('NFKD',"\x{304C}")), "NO"); |
66 | ok(answer(check('NFKC',"\x{304C}")), "YES"); |
67 | ok(answer(check('NFD' ,"\x{FF76}")), "YES"); |
68 | ok(answer(check('NFC' ,"\x{FF76}")), "YES"); |
69 | ok(answer(check('NFKD',"\x{FF76}")), "NO"); |
70 | ok(answer(check('NFKC',"\x{FF76}")), "NO"); |
71 | |