1*5759b3d2Safresh1 2*5759b3d2Safresh1BEGIN { 3*5759b3d2Safresh1 if ($ENV{PERL_CORE}) { 4*5759b3d2Safresh1 chdir('t') if -d 't'; 5*5759b3d2Safresh1 @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); 6*5759b3d2Safresh1 } 7*5759b3d2Safresh1} 8*5759b3d2Safresh1 9*5759b3d2Safresh1######################### 10*5759b3d2Safresh1 11*5759b3d2Safresh1use strict; 12*5759b3d2Safresh1use warnings; 13*5759b3d2Safresh1 14*5759b3d2Safresh1use Unicode::Normalize qw(:all); 15*5759b3d2Safresh1print "1..24\n"; 16*5759b3d2Safresh1 17*5759b3d2Safresh1print "ok 1\n"; 18*5759b3d2Safresh1 19*5759b3d2Safresh1# if $_ is not NULL-terminated, test may fail. 20*5759b3d2Safresh1 21*5759b3d2Safresh1$_ = compose('abc'); 22*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 2\n"; 23*5759b3d2Safresh1 24*5759b3d2Safresh1$_ = decompose('abc'); 25*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 3\n"; 26*5759b3d2Safresh1 27*5759b3d2Safresh1$_ = reorder('abc'); 28*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 4\n"; 29*5759b3d2Safresh1 30*5759b3d2Safresh1$_ = NFD('abc'); 31*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 5\n"; 32*5759b3d2Safresh1 33*5759b3d2Safresh1$_ = NFC('abc'); 34*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 6\n"; 35*5759b3d2Safresh1 36*5759b3d2Safresh1$_ = NFKD('abc'); 37*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 7\n"; 38*5759b3d2Safresh1 39*5759b3d2Safresh1$_ = NFKC('abc'); 40*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 8\n"; 41*5759b3d2Safresh1 42*5759b3d2Safresh1$_ = FCC('abc'); 43*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 9\n"; 44*5759b3d2Safresh1 45*5759b3d2Safresh1$_ = decompose("\x{304C}abc"); 46*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 10\n"; 47*5759b3d2Safresh1 48*5759b3d2Safresh1$_ = decompose("\x{304B}\x{3099}abc"); 49*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 11\n"; 50*5759b3d2Safresh1 51*5759b3d2Safresh1$_ = reorder("\x{304C}abc"); 52*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 12\n"; 53*5759b3d2Safresh1 54*5759b3d2Safresh1$_ = reorder("\x{304B}\x{3099}abc"); 55*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 13\n"; 56*5759b3d2Safresh1 57*5759b3d2Safresh1$_ = compose("\x{304C}abc"); 58*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 14\n"; 59*5759b3d2Safresh1 60*5759b3d2Safresh1$_ = compose("\x{304B}\x{3099}abc"); 61*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 15\n"; 62*5759b3d2Safresh1 63*5759b3d2Safresh1$_ = NFD("\x{304C}abc"); 64*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 16\n"; 65*5759b3d2Safresh1 66*5759b3d2Safresh1$_ = NFC("\x{304C}abc"); 67*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 17\n"; 68*5759b3d2Safresh1 69*5759b3d2Safresh1$_ = NFKD("\x{304C}abc"); 70*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 18\n"; 71*5759b3d2Safresh1 72*5759b3d2Safresh1$_ = NFKC("\x{304C}abc"); 73*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 19\n"; 74*5759b3d2Safresh1 75*5759b3d2Safresh1$_ = FCC("\x{304C}abc"); 76*5759b3d2Safresh1print /c$/ ? "ok" : "not ok", " 20\n"; 77*5759b3d2Safresh1 78*5759b3d2Safresh1$_ = getCanon(0x100); 79*5759b3d2Safresh1print s/.$// ? "ok" : "not ok", " 21\n"; 80*5759b3d2Safresh1 81*5759b3d2Safresh1$_ = getCompat(0x100); 82*5759b3d2Safresh1print s/.$// ? "ok" : "not ok", " 22\n"; 83*5759b3d2Safresh1 84*5759b3d2Safresh1$_ = getCanon(0xAC00); 85*5759b3d2Safresh1print s/.$// ? "ok" : "not ok", " 23\n"; 86*5759b3d2Safresh1 87*5759b3d2Safresh1$_ = getCompat(0xAC00); 88*5759b3d2Safresh1print s/.$// ? "ok" : "not ok", " 24\n"; 89*5759b3d2Safresh1 90