1
2BEGIN {
3    unless ('A' eq pack('U', 0x41)) {
4	print "1..0 # Unicode::Collate cannot pack a Unicode code point\n";
5	exit 0;
6    }
7    unless (0x41 == unpack('U', 'A')) {
8	print "1..0 # Unicode::Collate cannot get a Unicode code point\n";
9	exit 0;
10    }
11    if ($ENV{PERL_CORE}) {
12	chdir('t') if -d 't';
13	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
14    }
15}
16
17use strict;
18use warnings;
19BEGIN { $| = 1; print "1..52\n"; }
20my $count = 0;
21sub ok ($;$) {
22    my $p = my $r = shift;
23    if (@_) {
24	my $x = shift;
25	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
26    }
27    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
28}
29
30use Unicode::Collate::Locale;
31
32ok(1);
33
34#########################
35
36my $objKo = Unicode::Collate::Locale->
37    new(locale => 'KO', normalization => undef);
38
39ok($objKo->getlocale, 'ko');
40
41$objKo->change(level => 1);
42
43ok($objKo->eq("\x{AC00}", "\x{4F3D}"));
44ok($objKo->eq("\x{4F3D}", "\x{4F73}"));
45ok($objKo->eq("\x{4F73}", "\x{5047}"));
46ok($objKo->eq("\x{5047}", "\x{50F9}"));
47ok($objKo->eq("\x{50F9}", "\x{52A0}"));
48ok($objKo->eq("\x{52A0}", "\x{53EF}"));
49ok($objKo->lt("\x{53EF}", "\x{AC01}"));
50
51ok($objKo->eq("\x{AC1D}", "\x{5580}"));
52ok($objKo->eq("\x{5580}", "\x{5BA2}"));
53ok($objKo->lt("\x{5BA2}", "\x{AC31}"));
54
55ok($objKo->eq("\x{C77C}", "\x{4E00}"));
56ok($objKo->eq("\x{4E00}", "\x{4F5A}"));
57ok($objKo->eq("\x{4F5A}", "\x{4F7E}"));
58
59ok($objKo->lt("\x{993C}", "\x{D790}"));
60ok($objKo->eq("\x{D790}", "\x{8A70}"));
61ok($objKo->eq("\x{8A70}", "\x{72B5}"));
62ok($objKo->eq("\x{72B5}", "\x{7E88}"));
63ok($objKo->eq("\x{7E88}", "\x{896D}"));
64ok($objKo->eq("\x{896D}", "\x{9821}"));
65ok($objKo->eq("\x{9821}", "\x{9EE0}"));
66
67# 22
68
69# Ext.B
70ok($objKo->lt("\x{20000}", "\x{20001}"));
71ok($objKo->lt("\x{20001}", "\x{20002}"));
72ok($objKo->lt("\x{20002}", "\x{20003}"));
73ok($objKo->lt("\x{20003}", "\x{20004}"));
74ok($objKo->lt("\x{20004}", "\x{20005}"));
75
76# 27
77
78$objKo->change(level => 2);
79
80ok($objKo->lt("\x{AC00}", "\x{4F3D}"));
81ok($objKo->lt("\x{4F3D}", "\x{4F73}"));
82ok($objKo->lt("\x{4F73}", "\x{5047}"));
83ok($objKo->lt("\x{5047}", "\x{50F9}"));
84ok($objKo->lt("\x{50F9}", "\x{52A0}"));
85ok($objKo->lt("\x{52A0}", "\x{53EF}"));
86ok($objKo->lt("\x{53EF}", "\x{AC01}"));
87
88ok($objKo->lt("\x{AC1D}", "\x{5580}"));
89ok($objKo->lt("\x{5580}", "\x{5BA2}"));
90ok($objKo->lt("\x{5BA2}", "\x{AC31}"));
91
92ok($objKo->lt("\x{C77C}", "\x{4E00}"));
93ok($objKo->lt("\x{4E00}", "\x{4F5A}"));
94ok($objKo->lt("\x{4F5A}", "\x{4F7E}"));
95
96ok($objKo->lt("\x{993C}", "\x{D790}"));
97ok($objKo->lt("\x{D790}", "\x{8A70}"));
98ok($objKo->lt("\x{8A70}", "\x{72B5}"));
99ok($objKo->lt("\x{72B5}", "\x{7E88}"));
100ok($objKo->lt("\x{7E88}", "\x{896D}"));
101ok($objKo->lt("\x{896D}", "\x{9821}"));
102ok($objKo->lt("\x{9821}", "\x{9EE0}"));
103
104# 47
105
106# Ext.B
107ok($objKo->lt("\x{20000}", "\x{20001}"));
108ok($objKo->lt("\x{20001}", "\x{20002}"));
109ok($objKo->lt("\x{20002}", "\x{20003}"));
110ok($objKo->lt("\x{20003}", "\x{20004}"));
111ok($objKo->lt("\x{20004}", "\x{20005}"));
112
113# 52
114