1 2BEGIN { 3 if ($ENV{PERL_CORE}) { 4 chdir('t') if -d 't'; 5 @INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib); 6 } 7} 8 9use strict; 10use warnings; 11BEGIN { $| = 1; print "1..424\n"; } 12my $count = 0; 13sub ok ($;$) { 14 my $p = my $r = shift; 15 if (@_) { 16 my $x = shift; 17 $p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x; 18 } 19 print $p ? "ok" : "not ok", ' ', ++$count, "\n"; 20} 21 22use Unicode::Collate::Locale; 23 24ok(1); 25 26sub _pack_U { Unicode::Collate::pack_U(@_) } 27sub _unpack_U { Unicode::Collate::unpack_U(@_) } 28 29######################### 30 31my $objVi = Unicode::Collate::Locale-> 32 new(locale => 'VI', normalization => undef); 33 34ok($objVi->getlocale, 'vi'); 35 36$objVi->change(level => 1); 37 38ok($objVi->lt("a", "a\x{306}")); 39ok($objVi->lt("a\x{306}", "a\x{302}")); 40ok($objVi->gt("b", "a\x{302}")); 41ok($objVi->lt("d", "d\x{335}")); 42ok($objVi->gt("e", "d\x{335}")); 43ok($objVi->lt("e", "e\x{302}")); 44ok($objVi->gt("f", "e\x{302}")); 45ok($objVi->lt("o", "o\x{302}")); 46ok($objVi->lt("o\x{302}", "o\x{31B}")); 47ok($objVi->gt("p", "o\x{31B}")); 48ok($objVi->lt("u", "u\x{31B}")); 49ok($objVi->gt("v", "u\x{31B}")); 50 51# 14 52 53ok($objVi->eq("\x{300}", "\x{309}")); 54ok($objVi->eq("\x{309}", "\x{303}")); 55ok($objVi->eq("\x{303}", "\x{301}")); 56ok($objVi->eq("\x{301}", "\x{323}")); 57ok($objVi->eq("\x{323}", "\x{306}")); 58ok($objVi->eq("\x{306}", "\x{302}")); 59 60ok($objVi->eq("X\x{300}", "X\x{309}")); 61ok($objVi->eq("X\x{309}", "X\x{303}")); 62ok($objVi->eq("X\x{303}", "X\x{301}")); 63ok($objVi->eq("X\x{301}", "X\x{323}")); 64ok($objVi->eq("X\x{323}", "X\x{306}")); 65ok($objVi->eq("X\x{306}", "X\x{302}")); 66 67# 26 68 69$objVi->change(level => 2); 70 71ok($objVi->lt("\x{300}", "\x{309}")); 72ok($objVi->lt("\x{309}", "\x{303}")); 73ok($objVi->lt("\x{303}", "\x{301}")); 74ok($objVi->lt("\x{301}", "\x{323}")); 75ok($objVi->lt("\x{323}", "\x{306}")); 76ok($objVi->lt("\x{306}", "\x{302}")); 77 78ok($objVi->lt("X\x{300}", "X\x{309}")); 79ok($objVi->lt("X\x{309}", "X\x{303}")); 80ok($objVi->lt("X\x{303}", "X\x{301}")); 81ok($objVi->lt("X\x{301}", "X\x{323}")); 82ok($objVi->lt("X\x{323}", "X\x{306}")); 83ok($objVi->lt("X\x{306}", "X\x{302}")); 84 85# 38 86 87ok($objVi->eq("a\x{306}", "A\x{306}")); 88ok($objVi->eq("a\x{302}", "A\x{302}")); 89ok($objVi->eq("d\x{335}", "D\x{335}")); 90ok($objVi->eq("e\x{302}", "E\x{302}")); 91ok($objVi->eq("o\x{302}", "O\x{302}")); 92ok($objVi->eq("o\x{31B}", "O\x{31B}")); 93ok($objVi->eq("u\x{31B}", "U\x{31B}")); 94 95# 45 96 97$objVi->change(level => 3); 98 99ok($objVi->lt("a\x{306}", "A\x{306}")); 100ok($objVi->lt("a\x{302}", "A\x{302}")); 101ok($objVi->lt("d\x{335}", "D\x{335}")); 102ok($objVi->lt("e\x{302}", "E\x{302}")); 103ok($objVi->lt("o\x{302}", "O\x{302}")); 104ok($objVi->lt("o\x{31B}", "O\x{31B}")); 105ok($objVi->lt("u\x{31B}", "U\x{31B}")); 106 107# 52 108 109ok($objVi->eq("a\x{306}", "\x{103}")); 110ok($objVi->eq("A\x{306}", "\x{102}")); 111ok($objVi->eq("a\x{302}", _pack_U(0xE2))); 112ok($objVi->eq("A\x{302}", _pack_U(0xC2))); 113ok($objVi->eq("d\x{335}", "\x{111}")); 114ok($objVi->eq("D\x{335}", "\x{110}")); 115ok($objVi->eq("e\x{302}", _pack_U(0xEA))); 116ok($objVi->eq("E\x{302}", _pack_U(0xCA))); 117ok($objVi->eq("o\x{302}", _pack_U(0xF4))); 118ok($objVi->eq("O\x{302}", _pack_U(0xD4))); 119ok($objVi->eq("o\x{31B}", "\x{1A1}")); 120ok($objVi->eq("O\x{31B}", "\x{1A0}")); 121ok($objVi->eq("u\x{31B}", "\x{1B0}")); 122ok($objVi->eq("U\x{31B}", "\x{1AF}")); 123 124# 66 125 126ok($objVi->eq("e\x{306}", "\x{115}")); 127ok($objVi->eq("E\x{306}", "\x{114}")); 128ok($objVi->eq("i\x{306}", "\x{12D}")); 129ok($objVi->eq("I\x{306}", "\x{12C}")); 130ok($objVi->eq("o\x{306}", "\x{14F}")); 131ok($objVi->eq("O\x{306}", "\x{14E}")); 132ok($objVi->eq("u\x{306}", "\x{16D}")); 133ok($objVi->eq("U\x{306}", "\x{16C}")); 134 135# 74 136 137ok($objVi->eq("a\x{300}", _pack_U(0xE0))); 138ok($objVi->eq("a\x{340}", _pack_U(0xE0))); 139ok($objVi->eq("a\x{309}", "\x{1EA3}")); 140ok($objVi->eq("a\x{303}", _pack_U(0xE3))); 141ok($objVi->eq("a\x{301}", _pack_U(0xE1))); 142ok($objVi->eq("a\x{341}", _pack_U(0xE1))); 143ok($objVi->eq("a\x{323}", "\x{1EA1}")); 144ok($objVi->eq("A\x{300}", _pack_U(0xC0))); 145ok($objVi->eq("A\x{340}", _pack_U(0xC0))); 146ok($objVi->eq("A\x{309}", "\x{1EA2}")); 147ok($objVi->eq("A\x{303}", _pack_U(0xC3))); 148ok($objVi->eq("A\x{301}", _pack_U(0xC1))); 149ok($objVi->eq("A\x{341}", _pack_U(0xC1))); 150ok($objVi->eq("A\x{323}", "\x{1EA0}")); 151ok($objVi->eq("a\x{306}\x{300}", "\x{1EB1}")); 152ok($objVi->eq("a\x{306}\x{340}", "\x{1EB1}")); 153ok($objVi->eq("a\x{306}\x{309}", "\x{1EB3}")); 154ok($objVi->eq("a\x{306}\x{303}", "\x{1EB5}")); 155ok($objVi->eq("a\x{306}\x{301}", "\x{1EAF}")); 156ok($objVi->eq("a\x{306}\x{341}", "\x{1EAF}")); 157ok($objVi->eq("a\x{306}\x{323}", "\x{1EB7}")); 158ok($objVi->eq("A\x{306}\x{300}", "\x{1EB0}")); 159ok($objVi->eq("A\x{306}\x{340}", "\x{1EB0}")); 160ok($objVi->eq("A\x{306}\x{309}", "\x{1EB2}")); 161ok($objVi->eq("A\x{306}\x{303}", "\x{1EB4}")); 162ok($objVi->eq("A\x{306}\x{301}", "\x{1EAE}")); 163ok($objVi->eq("A\x{306}\x{341}", "\x{1EAE}")); 164ok($objVi->eq("A\x{306}\x{323}", "\x{1EB6}")); 165ok($objVi->eq("a\x{302}\x{300}", "\x{1EA7}")); 166ok($objVi->eq("a\x{302}\x{340}", "\x{1EA7}")); 167ok($objVi->eq("a\x{302}\x{309}", "\x{1EA9}")); 168ok($objVi->eq("a\x{302}\x{303}", "\x{1EAB}")); 169ok($objVi->eq("a\x{302}\x{301}", "\x{1EA5}")); 170ok($objVi->eq("a\x{302}\x{341}", "\x{1EA5}")); 171ok($objVi->eq("a\x{302}\x{323}", "\x{1EAD}")); 172ok($objVi->eq("A\x{302}\x{300}", "\x{1EA6}")); 173ok($objVi->eq("A\x{302}\x{340}", "\x{1EA6}")); 174ok($objVi->eq("A\x{302}\x{309}", "\x{1EA8}")); 175ok($objVi->eq("A\x{302}\x{303}", "\x{1EAA}")); 176ok($objVi->eq("A\x{302}\x{301}", "\x{1EA4}")); 177ok($objVi->eq("A\x{302}\x{341}", "\x{1EA4}")); 178ok($objVi->eq("A\x{302}\x{323}", "\x{1EAC}")); 179ok($objVi->eq("e\x{300}", _pack_U(0xE8))); 180ok($objVi->eq("e\x{340}", _pack_U(0xE8))); 181ok($objVi->eq("e\x{309}", "\x{1EBB}")); 182ok($objVi->eq("e\x{303}", "\x{1EBD}")); 183ok($objVi->eq("e\x{301}", _pack_U(0xE9))); 184ok($objVi->eq("e\x{341}", _pack_U(0xE9))); 185ok($objVi->eq("e\x{323}", "\x{1EB9}")); 186ok($objVi->eq("E\x{300}", _pack_U(0xC8))); 187ok($objVi->eq("E\x{340}", _pack_U(0xC8))); 188ok($objVi->eq("E\x{309}", "\x{1EBA}")); 189ok($objVi->eq("E\x{303}", "\x{1EBC}")); 190ok($objVi->eq("E\x{301}", _pack_U(0xC9))); 191ok($objVi->eq("E\x{341}", _pack_U(0xC9))); 192ok($objVi->eq("E\x{323}", "\x{1EB8}")); 193ok($objVi->eq("e\x{302}\x{300}", "\x{1EC1}")); 194ok($objVi->eq("e\x{302}\x{340}", "\x{1EC1}")); 195ok($objVi->eq("e\x{302}\x{309}", "\x{1EC3}")); 196ok($objVi->eq("e\x{302}\x{303}", "\x{1EC5}")); 197ok($objVi->eq("e\x{302}\x{301}", "\x{1EBF}")); 198ok($objVi->eq("e\x{302}\x{341}", "\x{1EBF}")); 199ok($objVi->eq("e\x{302}\x{323}", "\x{1EC7}")); 200ok($objVi->eq("E\x{302}\x{300}", "\x{1EC0}")); 201ok($objVi->eq("E\x{302}\x{340}", "\x{1EC0}")); 202ok($objVi->eq("E\x{302}\x{309}", "\x{1EC2}")); 203ok($objVi->eq("E\x{302}\x{303}", "\x{1EC4}")); 204ok($objVi->eq("E\x{302}\x{301}", "\x{1EBE}")); 205ok($objVi->eq("E\x{302}\x{341}", "\x{1EBE}")); 206ok($objVi->eq("E\x{302}\x{323}", "\x{1EC6}")); 207ok($objVi->eq("i\x{300}", _pack_U(0xEC))); 208ok($objVi->eq("i\x{340}", _pack_U(0xEC))); 209ok($objVi->eq("i\x{309}", "\x{1EC9}")); 210ok($objVi->eq("i\x{303}", "\x{129}")); 211ok($objVi->eq("i\x{301}", _pack_U(0xED))); 212ok($objVi->eq("i\x{341}", _pack_U(0xED))); 213ok($objVi->eq("i\x{323}", "\x{1ECB}")); 214ok($objVi->eq("I\x{300}", _pack_U(0xCC))); 215ok($objVi->eq("I\x{340}", _pack_U(0xCC))); 216ok($objVi->eq("I\x{309}", "\x{1EC8}")); 217ok($objVi->eq("I\x{303}", "\x{128}")); 218ok($objVi->eq("I\x{301}", _pack_U(0xCD))); 219ok($objVi->eq("I\x{341}", _pack_U(0xCD))); 220ok($objVi->eq("I\x{323}", "\x{1ECA}")); 221ok($objVi->eq("o\x{300}", _pack_U(0xF2))); 222ok($objVi->eq("o\x{340}", _pack_U(0xF2))); 223ok($objVi->eq("o\x{309}", "\x{1ECF}")); 224ok($objVi->eq("o\x{303}", _pack_U(0xF5))); 225ok($objVi->eq("o\x{301}", _pack_U(0xF3))); 226ok($objVi->eq("o\x{341}", _pack_U(0xF3))); 227ok($objVi->eq("o\x{323}", "\x{1ECD}")); 228ok($objVi->eq("O\x{300}", _pack_U(0xD2))); 229ok($objVi->eq("O\x{340}", _pack_U(0xD2))); 230ok($objVi->eq("O\x{309}", "\x{1ECE}")); 231ok($objVi->eq("O\x{303}", _pack_U(0xD5))); 232ok($objVi->eq("O\x{301}", _pack_U(0xD3))); 233ok($objVi->eq("O\x{341}", _pack_U(0xD3))); 234ok($objVi->eq("O\x{323}", "\x{1ECC}")); 235ok($objVi->eq("o\x{302}\x{300}", "\x{1ED3}")); 236ok($objVi->eq("o\x{302}\x{340}", "\x{1ED3}")); 237ok($objVi->eq("o\x{302}\x{309}", "\x{1ED5}")); 238ok($objVi->eq("o\x{302}\x{303}", "\x{1ED7}")); 239ok($objVi->eq("o\x{302}\x{301}", "\x{1ED1}")); 240ok($objVi->eq("o\x{302}\x{341}", "\x{1ED1}")); 241ok($objVi->eq("o\x{302}\x{323}", "\x{1ED9}")); 242ok($objVi->eq("O\x{302}\x{300}", "\x{1ED2}")); 243ok($objVi->eq("O\x{302}\x{340}", "\x{1ED2}")); 244ok($objVi->eq("O\x{302}\x{309}", "\x{1ED4}")); 245ok($objVi->eq("O\x{302}\x{303}", "\x{1ED6}")); 246ok($objVi->eq("O\x{302}\x{301}", "\x{1ED0}")); 247ok($objVi->eq("O\x{302}\x{341}", "\x{1ED0}")); 248ok($objVi->eq("O\x{302}\x{323}", "\x{1ED8}")); 249ok($objVi->eq("o\x{31B}\x{300}", "\x{1EDD}")); 250ok($objVi->eq("o\x{31B}\x{340}", "\x{1EDD}")); 251ok($objVi->eq("o\x{31B}\x{309}", "\x{1EDF}")); 252ok($objVi->eq("o\x{31B}\x{303}", "\x{1EE1}")); 253ok($objVi->eq("o\x{31B}\x{301}", "\x{1EDB}")); 254ok($objVi->eq("o\x{31B}\x{341}", "\x{1EDB}")); 255ok($objVi->eq("o\x{31B}\x{323}", "\x{1EE3}")); 256ok($objVi->eq("O\x{31B}\x{300}", "\x{1EDC}")); 257ok($objVi->eq("O\x{31B}\x{340}", "\x{1EDC}")); 258ok($objVi->eq("O\x{31B}\x{309}", "\x{1EDE}")); 259ok($objVi->eq("O\x{31B}\x{303}", "\x{1EE0}")); 260ok($objVi->eq("O\x{31B}\x{301}", "\x{1EDA}")); 261ok($objVi->eq("O\x{31B}\x{341}", "\x{1EDA}")); 262ok($objVi->eq("O\x{31B}\x{323}", "\x{1EE2}")); 263ok($objVi->eq("u\x{300}", _pack_U(0xF9))); 264ok($objVi->eq("u\x{340}", _pack_U(0xF9))); 265ok($objVi->eq("u\x{309}", "\x{1EE7}")); 266ok($objVi->eq("u\x{303}", "\x{169}")); 267ok($objVi->eq("u\x{301}", _pack_U(0xFA))); 268ok($objVi->eq("u\x{341}", _pack_U(0xFA))); 269ok($objVi->eq("u\x{323}", "\x{1EE5}")); 270ok($objVi->eq("U\x{300}", _pack_U(0xD9))); 271ok($objVi->eq("U\x{340}", _pack_U(0xD9))); 272ok($objVi->eq("U\x{309}", "\x{1EE6}")); 273ok($objVi->eq("U\x{303}", "\x{168}")); 274ok($objVi->eq("U\x{301}", _pack_U(0xDA))); 275ok($objVi->eq("U\x{341}", _pack_U(0xDA))); 276ok($objVi->eq("U\x{323}", "\x{1EE4}")); 277ok($objVi->eq("u\x{31B}\x{300}", "\x{1EEB}")); 278ok($objVi->eq("u\x{31B}\x{340}", "\x{1EEB}")); 279ok($objVi->eq("u\x{31B}\x{309}", "\x{1EED}")); 280ok($objVi->eq("u\x{31B}\x{303}", "\x{1EEF}")); 281ok($objVi->eq("u\x{31B}\x{301}", "\x{1EE9}")); 282ok($objVi->eq("u\x{31B}\x{341}", "\x{1EE9}")); 283ok($objVi->eq("u\x{31B}\x{323}", "\x{1EF1}")); 284ok($objVi->eq("U\x{31B}\x{300}", "\x{1EEA}")); 285ok($objVi->eq("U\x{31B}\x{340}", "\x{1EEA}")); 286ok($objVi->eq("U\x{31B}\x{309}", "\x{1EEC}")); 287ok($objVi->eq("U\x{31B}\x{303}", "\x{1EEE}")); 288ok($objVi->eq("U\x{31B}\x{301}", "\x{1EE8}")); 289ok($objVi->eq("U\x{31B}\x{341}", "\x{1EE8}")); 290ok($objVi->eq("U\x{31B}\x{323}", "\x{1EF0}")); 291ok($objVi->eq("y\x{300}", "\x{1EF3}")); 292ok($objVi->eq("y\x{340}", "\x{1EF3}")); 293ok($objVi->eq("y\x{309}", "\x{1EF7}")); 294ok($objVi->eq("y\x{303}", "\x{1EF9}")); 295ok($objVi->eq("y\x{301}", _pack_U(0xFD))); 296ok($objVi->eq("y\x{341}", _pack_U(0xFD))); 297ok($objVi->eq("y\x{323}", "\x{1EF5}")); 298ok($objVi->eq("Y\x{300}", "\x{1EF2}")); 299ok($objVi->eq("Y\x{340}", "\x{1EF2}")); 300ok($objVi->eq("Y\x{309}", "\x{1EF6}")); 301ok($objVi->eq("Y\x{303}", "\x{1EF8}")); 302ok($objVi->eq("Y\x{301}", _pack_U(0xDD))); 303ok($objVi->eq("Y\x{341}", _pack_U(0xDD))); 304ok($objVi->eq("Y\x{323}", "\x{1EF4}")); 305 306# 242 307 308ok($objVi->eq("a\x{306}\x{323}", "\x{1EA1}\x{306}")); 309ok($objVi->eq("A\x{306}\x{323}", "\x{1EA0}\x{306}")); 310ok($objVi->eq("a\x{302}\x{323}", "\x{1EA1}\x{302}")); 311ok($objVi->eq("A\x{302}\x{323}", "\x{1EA0}\x{302}")); 312ok($objVi->eq("e\x{302}\x{323}", "\x{1EB9}\x{302}")); 313ok($objVi->eq("E\x{302}\x{323}", "\x{1EB8}\x{302}")); 314ok($objVi->eq("o\x{302}\x{323}", "\x{1ECD}\x{302}")); 315ok($objVi->eq("O\x{302}\x{323}", "\x{1ECC}\x{302}")); 316ok($objVi->eq("o\x{31B}\x{300}", _pack_U(0xF2, 0x31B))); 317ok($objVi->eq("o\x{31B}\x{340}", _pack_U(0xF2, 0x31B))); 318ok($objVi->eq("o\x{31B}\x{309}", "\x{1ECF}\x{31B}")); 319ok($objVi->eq("o\x{31B}\x{303}", _pack_U(0xF5, 0x31B))); 320ok($objVi->eq("o\x{31B}\x{301}", _pack_U(0xF3, 0x31B))); 321ok($objVi->eq("o\x{31B}\x{341}", _pack_U(0xF3, 0x31B))); 322ok($objVi->eq("o\x{31B}\x{323}", "\x{1ECD}\x{31B}")); 323ok($objVi->eq("O\x{31B}\x{300}", _pack_U(0xD2, 0x31B))); 324ok($objVi->eq("O\x{31B}\x{340}", _pack_U(0xD2, 0x31B))); 325ok($objVi->eq("O\x{31B}\x{309}", "\x{1ECE}\x{31B}")); 326ok($objVi->eq("O\x{31B}\x{303}", _pack_U(0xD5, 0x31B))); 327ok($objVi->eq("O\x{31B}\x{301}", _pack_U(0xD3, 0x31B))); 328ok($objVi->eq("O\x{31B}\x{341}", _pack_U(0xD3, 0x31B))); 329ok($objVi->eq("O\x{31B}\x{323}", "\x{1ECC}\x{31B}")); 330ok($objVi->eq("u\x{31B}\x{300}", _pack_U(0xF9, 0x31B))); 331ok($objVi->eq("u\x{31B}\x{340}", _pack_U(0xF9, 0x31B))); 332ok($objVi->eq("u\x{31B}\x{309}", "\x{1EE7}\x{31B}")); 333ok($objVi->eq("u\x{31B}\x{303}", "\x{169}\x{31B}")); 334ok($objVi->eq("u\x{31B}\x{301}", _pack_U(0xFA, 0x31B))); 335ok($objVi->eq("u\x{31B}\x{341}", _pack_U(0xFA, 0x31B))); 336ok($objVi->eq("u\x{31B}\x{323}", "\x{1EE5}\x{31B}")); 337ok($objVi->eq("U\x{31B}\x{300}", _pack_U(0xD9, 0x31B))); 338ok($objVi->eq("U\x{31B}\x{340}", _pack_U(0xD9, 0x31B))); 339ok($objVi->eq("U\x{31B}\x{309}", "\x{1EE6}\x{31B}")); 340ok($objVi->eq("U\x{31B}\x{303}", "\x{168}\x{31B}")); 341ok($objVi->eq("U\x{31B}\x{301}", _pack_U(0xDA, 0x31B))); 342ok($objVi->eq("U\x{31B}\x{341}", _pack_U(0xDA, 0x31B))); 343ok($objVi->eq("U\x{31B}\x{323}", "\x{1EE4}\x{31B}")); 344 345# 278 346 347ok($objVi->eq("a\x{306}\x{323}", "a\x{323}\x{306}")); 348ok($objVi->eq("A\x{306}\x{323}", "A\x{323}\x{306}")); 349ok($objVi->eq("a\x{302}\x{323}", "a\x{323}\x{302}")); 350ok($objVi->eq("A\x{302}\x{323}", "A\x{323}\x{302}")); 351ok($objVi->eq("e\x{302}\x{323}", "e\x{323}\x{302}")); 352ok($objVi->eq("E\x{302}\x{323}", "E\x{323}\x{302}")); 353ok($objVi->eq("o\x{302}\x{323}", "o\x{323}\x{302}")); 354ok($objVi->eq("O\x{302}\x{323}", "O\x{323}\x{302}")); 355ok($objVi->eq("o\x{31B}\x{300}", "o\x{300}\x{31B}")); 356ok($objVi->eq("o\x{31B}\x{340}", "o\x{340}\x{31B}")); 357ok($objVi->eq("o\x{31B}\x{309}", "o\x{309}\x{31B}")); 358ok($objVi->eq("o\x{31B}\x{303}", "o\x{303}\x{31B}")); 359ok($objVi->eq("o\x{31B}\x{301}", "o\x{301}\x{31B}")); 360ok($objVi->eq("o\x{31B}\x{341}", "o\x{341}\x{31B}")); 361ok($objVi->eq("o\x{31B}\x{323}", "o\x{323}\x{31B}")); 362ok($objVi->eq("O\x{31B}\x{300}", "O\x{300}\x{31B}")); 363ok($objVi->eq("O\x{31B}\x{340}", "O\x{340}\x{31B}")); 364ok($objVi->eq("O\x{31B}\x{309}", "O\x{309}\x{31B}")); 365ok($objVi->eq("O\x{31B}\x{303}", "O\x{303}\x{31B}")); 366ok($objVi->eq("O\x{31B}\x{301}", "O\x{301}\x{31B}")); 367ok($objVi->eq("O\x{31B}\x{341}", "O\x{341}\x{31B}")); 368ok($objVi->eq("O\x{31B}\x{323}", "O\x{323}\x{31B}")); 369ok($objVi->eq("u\x{31B}\x{300}", "u\x{300}\x{31B}")); 370ok($objVi->eq("u\x{31B}\x{340}", "u\x{340}\x{31B}")); 371ok($objVi->eq("u\x{31B}\x{309}", "u\x{309}\x{31B}")); 372ok($objVi->eq("u\x{31B}\x{303}", "u\x{303}\x{31B}")); 373ok($objVi->eq("u\x{31B}\x{301}", "u\x{301}\x{31B}")); 374ok($objVi->eq("u\x{31B}\x{341}", "u\x{341}\x{31B}")); 375ok($objVi->eq("u\x{31B}\x{323}", "u\x{323}\x{31B}")); 376ok($objVi->eq("U\x{31B}\x{300}", "U\x{300}\x{31B}")); 377ok($objVi->eq("U\x{31B}\x{340}", "U\x{340}\x{31B}")); 378ok($objVi->eq("U\x{31B}\x{309}", "U\x{309}\x{31B}")); 379ok($objVi->eq("U\x{31B}\x{303}", "U\x{303}\x{31B}")); 380ok($objVi->eq("U\x{31B}\x{301}", "U\x{301}\x{31B}")); 381ok($objVi->eq("U\x{31B}\x{341}", "U\x{341}\x{31B}")); 382ok($objVi->eq("U\x{31B}\x{323}", "U\x{323}\x{31B}")); 383 384# 314 385 386ok($objVi->eq("a\x{306}\x{300}", "\x{103}\x{300}")); 387ok($objVi->eq("a\x{306}\x{340}", "\x{103}\x{340}")); 388ok($objVi->eq("a\x{306}\x{309}", "\x{103}\x{309}")); 389ok($objVi->eq("a\x{306}\x{303}", "\x{103}\x{303}")); 390ok($objVi->eq("a\x{306}\x{301}", "\x{103}\x{301}")); 391ok($objVi->eq("a\x{306}\x{341}", "\x{103}\x{341}")); 392ok($objVi->eq("a\x{306}\x{323}", "\x{103}\x{323}")); 393ok($objVi->eq("A\x{306}\x{300}", "\x{102}\x{300}")); 394ok($objVi->eq("A\x{306}\x{340}", "\x{102}\x{340}")); 395ok($objVi->eq("A\x{306}\x{309}", "\x{102}\x{309}")); 396ok($objVi->eq("A\x{306}\x{303}", "\x{102}\x{303}")); 397ok($objVi->eq("A\x{306}\x{301}", "\x{102}\x{301}")); 398ok($objVi->eq("A\x{306}\x{341}", "\x{102}\x{341}")); 399ok($objVi->eq("A\x{306}\x{323}", "\x{102}\x{323}")); 400ok($objVi->eq("a\x{302}\x{300}", _pack_U(0xE2, 0x300))); 401ok($objVi->eq("a\x{302}\x{340}", _pack_U(0xE2, 0x340))); 402ok($objVi->eq("a\x{302}\x{309}", _pack_U(0xE2, 0x309))); 403ok($objVi->eq("a\x{302}\x{303}", _pack_U(0xE2, 0x303))); 404ok($objVi->eq("a\x{302}\x{301}", _pack_U(0xE2, 0x301))); 405ok($objVi->eq("a\x{302}\x{341}", _pack_U(0xE2, 0x341))); 406ok($objVi->eq("a\x{302}\x{323}", _pack_U(0xE2, 0x323))); 407ok($objVi->eq("A\x{302}\x{300}", _pack_U(0xC2, 0x300))); 408ok($objVi->eq("A\x{302}\x{340}", _pack_U(0xC2, 0x340))); 409ok($objVi->eq("A\x{302}\x{309}", _pack_U(0xC2, 0x309))); 410ok($objVi->eq("A\x{302}\x{303}", _pack_U(0xC2, 0x303))); 411ok($objVi->eq("A\x{302}\x{301}", _pack_U(0xC2, 0x301))); 412ok($objVi->eq("A\x{302}\x{341}", _pack_U(0xC2, 0x341))); 413ok($objVi->eq("A\x{302}\x{323}", _pack_U(0xC2, 0x323))); 414ok($objVi->eq("e\x{302}\x{300}", _pack_U(0xEA, 0x300))); 415ok($objVi->eq("e\x{302}\x{340}", _pack_U(0xEA, 0x340))); 416ok($objVi->eq("e\x{302}\x{309}", _pack_U(0xEA, 0x309))); 417ok($objVi->eq("e\x{302}\x{303}", _pack_U(0xEA, 0x303))); 418ok($objVi->eq("e\x{302}\x{301}", _pack_U(0xEA, 0x301))); 419ok($objVi->eq("e\x{302}\x{341}", _pack_U(0xEA, 0x341))); 420ok($objVi->eq("e\x{302}\x{323}", _pack_U(0xEA, 0x323))); 421ok($objVi->eq("E\x{302}\x{300}", _pack_U(0xCA, 0x300))); 422ok($objVi->eq("E\x{302}\x{340}", _pack_U(0xCA, 0x340))); 423ok($objVi->eq("E\x{302}\x{309}", _pack_U(0xCA, 0x309))); 424ok($objVi->eq("E\x{302}\x{303}", _pack_U(0xCA, 0x303))); 425ok($objVi->eq("E\x{302}\x{301}", _pack_U(0xCA, 0x301))); 426ok($objVi->eq("E\x{302}\x{341}", _pack_U(0xCA, 0x341))); 427ok($objVi->eq("E\x{302}\x{323}", _pack_U(0xCA, 0x323))); 428ok($objVi->eq("o\x{302}\x{300}", _pack_U(0xF4, 0x300))); 429ok($objVi->eq("o\x{302}\x{340}", _pack_U(0xF4, 0x340))); 430ok($objVi->eq("o\x{302}\x{309}", _pack_U(0xF4, 0x309))); 431ok($objVi->eq("o\x{302}\x{303}", _pack_U(0xF4, 0x303))); 432ok($objVi->eq("o\x{302}\x{301}", _pack_U(0xF4, 0x301))); 433ok($objVi->eq("o\x{302}\x{341}", _pack_U(0xF4, 0x341))); 434ok($objVi->eq("o\x{302}\x{323}", _pack_U(0xF4, 0x323))); 435ok($objVi->eq("O\x{302}\x{300}", _pack_U(0xD4, 0x300))); 436ok($objVi->eq("O\x{302}\x{340}", _pack_U(0xD4, 0x340))); 437ok($objVi->eq("O\x{302}\x{309}", _pack_U(0xD4, 0x309))); 438ok($objVi->eq("O\x{302}\x{303}", _pack_U(0xD4, 0x303))); 439ok($objVi->eq("O\x{302}\x{301}", _pack_U(0xD4, 0x301))); 440ok($objVi->eq("O\x{302}\x{341}", _pack_U(0xD4, 0x341))); 441ok($objVi->eq("O\x{302}\x{323}", _pack_U(0xD4, 0x323))); 442ok($objVi->eq("o\x{31B}\x{300}", "\x{1A1}\x{300}")); 443ok($objVi->eq("o\x{31B}\x{340}", "\x{1A1}\x{340}")); 444ok($objVi->eq("o\x{31B}\x{309}", "\x{1A1}\x{309}")); 445ok($objVi->eq("o\x{31B}\x{303}", "\x{1A1}\x{303}")); 446ok($objVi->eq("o\x{31B}\x{301}", "\x{1A1}\x{301}")); 447ok($objVi->eq("o\x{31B}\x{341}", "\x{1A1}\x{341}")); 448ok($objVi->eq("o\x{31B}\x{323}", "\x{1A1}\x{323}")); 449ok($objVi->eq("O\x{31B}\x{300}", "\x{1A0}\x{300}")); 450ok($objVi->eq("O\x{31B}\x{340}", "\x{1A0}\x{340}")); 451ok($objVi->eq("O\x{31B}\x{309}", "\x{1A0}\x{309}")); 452ok($objVi->eq("O\x{31B}\x{303}", "\x{1A0}\x{303}")); 453ok($objVi->eq("O\x{31B}\x{301}", "\x{1A0}\x{301}")); 454ok($objVi->eq("O\x{31B}\x{341}", "\x{1A0}\x{341}")); 455ok($objVi->eq("O\x{31B}\x{323}", "\x{1A0}\x{323}")); 456ok($objVi->eq("u\x{31B}\x{300}", "\x{1B0}\x{300}")); 457ok($objVi->eq("u\x{31B}\x{340}", "\x{1B0}\x{340}")); 458ok($objVi->eq("u\x{31B}\x{309}", "\x{1B0}\x{309}")); 459ok($objVi->eq("u\x{31B}\x{303}", "\x{1B0}\x{303}")); 460ok($objVi->eq("u\x{31B}\x{301}", "\x{1B0}\x{301}")); 461ok($objVi->eq("u\x{31B}\x{341}", "\x{1B0}\x{341}")); 462ok($objVi->eq("u\x{31B}\x{323}", "\x{1B0}\x{323}")); 463ok($objVi->eq("U\x{31B}\x{300}", "\x{1AF}\x{300}")); 464ok($objVi->eq("U\x{31B}\x{340}", "\x{1AF}\x{340}")); 465ok($objVi->eq("U\x{31B}\x{309}", "\x{1AF}\x{309}")); 466ok($objVi->eq("U\x{31B}\x{303}", "\x{1AF}\x{303}")); 467ok($objVi->eq("U\x{31B}\x{301}", "\x{1AF}\x{301}")); 468ok($objVi->eq("U\x{31B}\x{341}", "\x{1AF}\x{341}")); 469ok($objVi->eq("U\x{31B}\x{323}", "\x{1AF}\x{323}")); 470 471# 398 472 473$objVi->change(normalization => undef); 474 475ok($objVi->index("a\x{306}\x{323}", "a\x{323}\x{306}"), 0); 476ok($objVi->index("o\x{31B}\x{300}", "o\x{300}\x{31B}"), 0); 477ok($objVi->index("o\x{31B}\x{300}", "o\x{340}\x{31B}"), 0); 478ok($objVi->index("o\x{31B}\x{301}", "o\x{301}\x{31B}"), 0); 479ok($objVi->index("o\x{31B}\x{301}", "o\x{341}\x{31B}"), 0); 480ok($objVi->index("a\x{306}\x{323}", _pack_U(0x1EA1, 0x306)), 0); 481ok($objVi->index("o\x{31B}\x{300}", _pack_U(0x00F2, 0x31B)), 0); 482 483ok($objVi->index("A\x{306}\x{323}", "a\x{323}\x{306}"), -1); 484ok($objVi->index("O\x{31B}\x{300}", "o\x{300}\x{31B}"), -1); 485ok($objVi->index("A\x{306}\x{323}", _pack_U(0x1EA1, 0x306)), -1); 486ok($objVi->index("O\x{31B}\x{300}", _pack_U(0x00F2, 0x31B)), -1); 487 488# 409 489 490$objVi->change(level => 2); 491 492ok($objVi->index("A\x{306}\x{323}", "a\x{323}\x{306}"), 0); 493ok($objVi->index("O\x{31B}\x{300}", "o\x{300}\x{31B}"), 0); 494ok($objVi->index("O\x{31B}\x{300}", "o\x{340}\x{31B}"), 0); 495ok($objVi->index("O\x{31B}\x{301}", "o\x{301}\x{31B}"), 0); 496ok($objVi->index("O\x{31B}\x{301}", "o\x{341}\x{31B}"), 0); 497ok($objVi->index("A\x{306}\x{323}", _pack_U(0x1EA1, 0x306)), 0); 498ok($objVi->index("O\x{31B}\x{300}", _pack_U(0x00F2, 0x31B)), 0); 499 500ok($objVi->index("A\x{306}", "a\x{323}\x{306}"), -1); 501ok($objVi->index("O\x{31B}", "o\x{300}\x{31B}"), -1); 502ok($objVi->index("A\x{306}", _pack_U(0x1EA1, 0x306)), -1); 503ok($objVi->index("O\x{31B}", _pack_U(0x00F2, 0x31B)), -1); 504 505# 420 506 507$objVi->change(level => 1); 508 509ok($objVi->index("A\x{306}", "a\x{323}\x{306}"), 0); 510ok($objVi->index("O\x{31B}", "o\x{300}\x{31B}"), 0); 511ok($objVi->index("A\x{306}", _pack_U(0x1EA1, 0x306)), 0); 512ok($objVi->index("O\x{31B}", _pack_U(0x00F2, 0x31B)), 0); 513 514# 424 515