This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
1ac1b044c383374f5d65ca5201dbdfd60cf54a4c
[perl5.git] / cpan / Unicode-Collate / t / loc_fa.t
1
2 BEGIN {
3     unless ("A" eq pack('U', 0x41)) {
4         print "1..0 # Unicode::Collate " .
5             "cannot stringify a Unicode code point\n";
6         exit 0;
7     }
8     if ($ENV{PERL_CORE}) {
9         chdir('t') if -d 't';
10         @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
11     }
12 }
13
14 use strict;
15 use warnings;
16 BEGIN { $| = 1; print "1..81\n"; }
17 my $count = 0;
18 sub ok ($;$) {
19     my $p = my $r = shift;
20     if (@_) {
21         my $x = shift;
22         $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
23     }
24     print $p ? "ok" : "not ok", ' ', ++$count, "\n";
25 }
26
27 use Unicode::Collate::Locale;
28
29 ok(1);
30
31 #########################
32
33 my $objFa = Unicode::Collate::Locale->
34     new(locale => 'FA', normalization => undef);
35
36 ok($objFa->getlocale, 'fa');
37
38 $objFa->change(level => 1);
39
40 ok($objFa->lt("\x{622}", "\x{627}"));
41 ok($objFa->lt("\x{627}", "\x{621}"));
42 ok($objFa->lt("\x{621}", "\x{66E}"));
43
44 ok($objFa->lt("\x{6CF}", "\x{647}"));
45 ok($objFa->lt("\x{647}", "\x{778}"));
46
47 # 7
48
49 ok($objFa->eq("\x{64E}", "\x{650}"));
50 ok($objFa->eq("\x{650}", "\x{64F}"));
51 ok($objFa->eq("\x{64F}", "\x{64B}"));
52 ok($objFa->eq("\x{64B}", "\x{64D}"));
53 ok($objFa->eq("\x{64D}", "\x{64C}"));
54
55 ok($objFa->eq("\x{627}", "\x{671}"));
56
57 ok($objFa->eq("\x{621}", "\x{623}"));
58 ok($objFa->eq("\x{623}", "\x{672}"));
59 ok($objFa->eq("\x{672}", "\x{625}"));
60 ok($objFa->eq("\x{625}", "\x{673}"));
61 ok($objFa->eq("\x{673}", "\x{624}"));
62 ok($objFa->eq("\x{624}", "\x{6CC}\x{654}"));
63
64 ok($objFa->eq("\x{6A9}", "\x{6AA}"));
65 ok($objFa->eq("\x{6AA}", "\x{6AB}"));
66 ok($objFa->eq("\x{6AB}", "\x{643}"));
67 ok($objFa->eq("\x{643}", "\x{6AC}"));
68 ok($objFa->eq("\x{6AC}", "\x{6AD}"));
69 ok($objFa->eq("\x{6AD}", "\x{6AE}"));
70
71 ok($objFa->eq("\x{647}", "\x{6D5}"));
72 ok($objFa->eq("\x{6D5}", "\x{6C1}"));
73 ok($objFa->eq("\x{6C1}", "\x{629}"));
74 ok($objFa->eq("\x{629}", "\x{6C3}"));
75 ok($objFa->eq("\x{6C3}", "\x{6C0}"));
76 ok($objFa->eq("\x{6C0}", "\x{6BE}"));
77
78 ok($objFa->eq("\x{6CC}", "\x{649}"));
79 ok($objFa->eq("\x{649}", "\x{6D2}"));
80 ok($objFa->eq("\x{6D2}", "\x{64A}"));
81 ok($objFa->eq("\x{64A}", "\x{6D0}"));
82 ok($objFa->eq("\x{6D0}", "\x{6D1}"));
83 ok($objFa->eq("\x{6D1}", "\x{6CD}"));
84 ok($objFa->eq("\x{6CD}", "\x{6CE}"));
85
86 # 38
87
88 $objFa->change(level => 2);
89
90 ok($objFa->lt("\x{64E}", "\x{650}"));
91 ok($objFa->lt("\x{650}", "\x{64F}"));
92 ok($objFa->lt("\x{64F}", "\x{64B}"));
93 ok($objFa->lt("\x{64B}", "\x{64D}"));
94 ok($objFa->lt("\x{64D}", "\x{64C}"));
95
96 ok($objFa->lt("\x{627}", "\x{671}"));
97
98 ok($objFa->lt("\x{621}", "\x{623}"));
99 ok($objFa->lt("\x{623}", "\x{672}"));
100 ok($objFa->lt("\x{672}", "\x{625}"));
101 ok($objFa->lt("\x{625}", "\x{673}"));
102 ok($objFa->lt("\x{673}", "\x{624}"));
103 ok($objFa->lt("\x{624}", "\x{6CC}\x{654}"));
104
105 ok($objFa->lt("\x{6A9}", "\x{6AA}"));
106 ok($objFa->lt("\x{6AA}", "\x{6AB}"));
107 ok($objFa->lt("\x{6AB}", "\x{643}"));
108 ok($objFa->lt("\x{643}", "\x{6AC}"));
109 ok($objFa->lt("\x{6AC}", "\x{6AD}"));
110 ok($objFa->lt("\x{6AD}", "\x{6AE}"));
111
112 ok($objFa->lt("\x{647}", "\x{6D5}"));
113 ok($objFa->lt("\x{6D5}", "\x{6C1}"));
114 ok($objFa->lt("\x{6C1}", "\x{629}"));
115 ok($objFa->lt("\x{629}", "\x{6C3}"));
116 ok($objFa->lt("\x{6C3}", "\x{6C0}"));
117 ok($objFa->lt("\x{6C0}", "\x{6BE}"));
118
119 ok($objFa->lt("\x{6CC}", "\x{649}"));
120 ok($objFa->lt("\x{649}", "\x{6D2}"));
121 ok($objFa->lt("\x{6D2}", "\x{64A}"));
122 ok($objFa->lt("\x{64A}", "\x{6D0}"));
123 ok($objFa->lt("\x{6D0}", "\x{6D1}"));
124 ok($objFa->lt("\x{6D1}", "\x{6CD}"));
125 ok($objFa->lt("\x{6CD}", "\x{6CE}"));
126
127 # 69
128
129 ok($objFa->eq("\x{6CC}\x{654}", "\x{649}\x{654}"));
130 ok($objFa->eq("\x{649}\x{654}", "\x{626}"));
131
132 # 71
133
134 $objFa->change(level => 3);
135
136 ok($objFa->lt("\x{6CC}\x{654}", "\x{649}\x{654}"));
137 ok($objFa->lt("\x{649}\x{654}", "\x{626}"));
138
139 # 73
140
141 ok($objFa->eq("\x{622}", "\x{627}\x{653}"));
142 ok($objFa->eq("\x{623}", "\x{627}\x{654}"));
143 ok($objFa->eq("\x{625}", "\x{627}\x{655}"));
144 ok($objFa->eq("\x{624}", "\x{648}\x{654}"));
145 ok($objFa->eq("\x{626}", "\x{64A}\x{654}"));
146 ok($objFa->eq("\x{6C2}", "\x{6C1}\x{654}"));
147 ok($objFa->eq("\x{6C0}", "\x{6D5}\x{654}"));
148 ok($objFa->eq("\x{6D3}", "\x{6D2}\x{654}"));
149
150 # 81