This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
[perl5.git] / cpan / Unicode-Collate / t / cjkrange.t
CommitLineData
3756e7ca
RGS
1
2BEGIN {
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
14use Test;
15BEGIN { plan tests => 51 };
16
17use strict;
18use warnings;
19use Unicode::Collate;
20
21ok(1);
22
23my $Collator = Unicode::Collate->new(
24 table => 'keys.txt',
25 normalization => undef,
26);
27
28# U+9FA6..U+9FBB are CJK UI since Unicode 4.1.0.
29# U+3400 is CJK UI ExtA, then greater than any CJK UI.
30
31##### 2..11
32ok($Collator->lt("\x{9FA5}", "\x{3400}")); # UI < ExtA
33ok($Collator->lt("\x{9FA6}", "\x{3400}")); # new UI < ExtA
34ok($Collator->lt("\x{9FBB}", "\x{3400}")); # new UI < ExtA
35ok($Collator->gt("\x{9FBC}", "\x{3400}")); # Unassigned > ExtA
36ok($Collator->gt("\x{9FFF}", "\x{3400}")); # Unassigned > ExtA
37ok($Collator->lt("\x{9FA6}", "\x{9FBB}")); # new UI > new UI
38ok($Collator->lt("\x{3400}","\x{20000}")); # ExtA < ExtB
39ok($Collator->lt("\x{3400}","\x{2A6D6}")); # ExtA < ExtB
40ok($Collator->gt("\x{9FFF}","\x{20000}")); # Unassigned > ExtB
41ok($Collator->gt("\x{9FFF}","\x{2A6D6}")); # Unassigned > ExtB
42
43##### 12..21
44$Collator->change(UCA_Version => 11);
45ok($Collator->lt("\x{9FA5}", "\x{3400}")); # UI < ExtA
46ok($Collator->gt("\x{9FA6}", "\x{3400}")); # Unassigned > ExtA
47ok($Collator->gt("\x{9FBB}", "\x{3400}")); # Unassigned > ExtA
48ok($Collator->gt("\x{9FBC}", "\x{3400}")); # Unassigned > ExtA
49ok($Collator->gt("\x{9FFF}", "\x{3400}")); # Unassigned > ExtA
50ok($Collator->lt("\x{9FA6}", "\x{9FBB}")); # Unassigned > Unassigned
51ok($Collator->lt("\x{3400}","\x{20000}")); # ExtA < ExtB
52ok($Collator->lt("\x{3400}","\x{2A6D6}")); # ExtA < ExtB
53ok($Collator->gt("\x{9FFF}","\x{20000}")); # Unassigned > ExtB
54ok($Collator->gt("\x{9FFF}","\x{2A6D6}")); # Unassigned > ExtB
55
56##### 22..31
57$Collator->change(UCA_Version => 9);
58ok($Collator->lt("\x{9FA5}", "\x{3400}")); # UI < ExtA
59ok($Collator->gt("\x{9FA6}", "\x{3400}")); # Unassigned > ExtA
60ok($Collator->gt("\x{9FBB}", "\x{3400}")); # Unassigned > ExtA
61ok($Collator->gt("\x{9FBC}", "\x{3400}")); # Unassigned > ExtA
62ok($Collator->gt("\x{9FFF}", "\x{3400}")); # Unassigned > ExtA
63ok($Collator->lt("\x{9FA6}", "\x{9FBB}")); # Unassigned > Unassigned
64ok($Collator->lt("\x{3400}","\x{20000}")); # ExtA < ExtB
65ok($Collator->lt("\x{3400}","\x{2A6D6}")); # ExtA < ExtB
66ok($Collator->gt("\x{9FFF}","\x{20000}")); # Unassigned > ExtB
67ok($Collator->gt("\x{9FFF}","\x{2A6D6}")); # Unassigned > ExtB
68
69##### 32..41
70$Collator->change(UCA_Version => 8);
71ok($Collator->gt("\x{9FA5}", "\x{3400}")); # UI > ExtA
72ok($Collator->gt("\x{9FA6}", "\x{3400}")); # Unassigned > ExtA
73ok($Collator->gt("\x{9FBB}", "\x{3400}")); # Unassigned > ExtA
74ok($Collator->gt("\x{9FBC}", "\x{3400}")); # Unassigned > ExtA
75ok($Collator->gt("\x{9FFF}", "\x{3400}")); # Unassigned > ExtA
76ok($Collator->lt("\x{9FA6}", "\x{9FBB}")); # new UI > new UI
77ok($Collator->lt("\x{3400}","\x{20000}")); # ExtA < Unassigned(ExtB)
78ok($Collator->lt("\x{3400}","\x{2A6D6}")); # ExtA < Unassigned(ExtB)
79ok($Collator->lt("\x{9FFF}","\x{20000}")); # Unassigned < Unassigned(ExtB)
80ok($Collator->lt("\x{9FFF}","\x{2A6D6}")); # Unassigned < Unassigned(ExtB)
81
82##### 42..51
83$Collator->change(UCA_Version => 14);
84ok($Collator->lt("\x{9FA5}", "\x{3400}")); # UI < ExtA
85ok($Collator->lt("\x{9FA6}", "\x{3400}")); # new UI < ExtA
86ok($Collator->lt("\x{9FBB}", "\x{3400}")); # new UI < ExtA
87ok($Collator->gt("\x{9FBC}", "\x{3400}")); # Unassigned > ExtA
88ok($Collator->gt("\x{9FFF}", "\x{3400}")); # Unassigned > ExtA
89ok($Collator->lt("\x{9FA6}", "\x{9FBB}")); # new UI > new UI
90ok($Collator->lt("\x{3400}","\x{20000}")); # ExtA < ExtB
91ok($Collator->lt("\x{3400}","\x{2A6D6}")); # ExtA < ExtB
92ok($Collator->gt("\x{9FFF}","\x{20000}")); # Unassigned > ExtB
93ok($Collator->gt("\x{9FFF}","\x{2A6D6}")); # Unassigned > ExtB
94