3 unless ("A" eq pack('U', 0x41)) {
4 print "1..0 # Unicode::Collate " .
5 "cannot stringify a Unicode code point\n";
10 @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
15 BEGIN { plan tests => 42 };
19 use Unicode::Collate::Locale;
23 #########################
25 my $auml = pack 'U', 0xE4;
26 my $Auml = pack 'U', 0xC4;
27 my $ouml = pack 'U', 0xF6;
28 my $Ouml = pack 'U', 0xD6;
29 my $uuml = pack 'U', 0xFC;
30 my $Uuml = pack 'U', 0xDC;
32 my $objDePhone = Unicode::Collate::Locale->
33 new(locale => 'DE-PHONE', normalization => undef);
35 ok($objDePhone->getlocale, 'de__phonebook');
37 $objDePhone->change(level => 1);
39 ok($objDePhone->eq("a\x{308}", "ae"));
40 ok($objDePhone->eq("A\x{308}", "AE"));
41 ok($objDePhone->eq("o\x{308}", "oe"));
42 ok($objDePhone->eq("O\x{308}", "OE"));
43 ok($objDePhone->eq("u\x{308}", "ue"));
44 ok($objDePhone->eq("U\x{308}", "UE"));
48 $objDePhone->change(level => 2);
50 ok($objDePhone->gt("a\x{308}", "ae"));
51 ok($objDePhone->gt("A\x{308}", "AE"));
52 ok($objDePhone->gt("o\x{308}", "oe"));
53 ok($objDePhone->gt("O\x{308}", "OE"));
54 ok($objDePhone->gt("u\x{308}", "ue"));
55 ok($objDePhone->gt("U\x{308}", "UE"));
57 ok($objDePhone->eq("a\x{308}", "A\x{308}"));
58 ok($objDePhone->eq("o\x{308}", "O\x{308}"));
59 ok($objDePhone->eq("u\x{308}", "U\x{308}"));
63 $objDePhone->change(level => 3);
65 ok($objDePhone->lt("a\x{308}", "A\x{308}"));
66 ok($objDePhone->lt("o\x{308}", "O\x{308}"));
67 ok($objDePhone->lt("u\x{308}", "U\x{308}"));
69 ok($objDePhone->eq("a\x{308}", $auml));
70 ok($objDePhone->eq("A\x{308}", $Auml));
71 ok($objDePhone->eq("o\x{308}", $ouml));
72 ok($objDePhone->eq("O\x{308}", $Ouml));
73 ok($objDePhone->eq("u\x{308}", $uuml));
74 ok($objDePhone->eq("U\x{308}", $Uuml));
78 ok($objDePhone->eq("a\x{308}\x{304}", "\x{1DF}"));
79 ok($objDePhone->eq("A\x{308}\x{304}", "\x{1DE}"));
80 ok($objDePhone->eq("o\x{308}\x{304}", "\x{22B}"));
81 ok($objDePhone->eq("O\x{308}\x{304}", "\x{22A}"));
82 ok($objDePhone->eq("u\x{308}\x{300}", "\x{1DC}"));
83 ok($objDePhone->eq("U\x{308}\x{300}", "\x{1DB}"));
84 ok($objDePhone->eq("u\x{308}\x{301}", "\x{1D8}"));
85 ok($objDePhone->eq("U\x{308}\x{301}", "\x{1D7}"));
86 ok($objDePhone->eq("u\x{308}\x{304}", "\x{1D6}"));
87 ok($objDePhone->eq("U\x{308}\x{304}", "\x{1D5}"));
88 ok($objDePhone->eq("u\x{308}\x{30C}", "\x{1DA}"));
89 ok($objDePhone->eq("U\x{308}\x{30C}", "\x{1D9}"));
93 my $objDePhoneBook = Unicode::Collate::Locale->
94 new(locale => 'de__phonebook', normalization => undef);
96 ok($objDePhoneBook->getlocale, 'de__phonebook');
98 $objDePhoneBook->change(level => 1);
100 ok($objDePhoneBook->eq("a\x{308}", "ae"));
104 my $objDePhonebk = Unicode::Collate::Locale->
105 new(locale => 'de-phonebk', normalization => undef);
107 ok($objDePhonebk->getlocale, 'de__phonebook');
109 $objDePhonebk->change(level => 1);
111 ok($objDePhonebk->eq("a\x{308}", "ae"));