
BEGIN {
    unless ('A' eq pack('U', 0x41)) {
	print "1..0 # Unicode::Collate cannot pack a Unicode code point\n";
	exit 0;
    }
    unless (0x41 == unpack('U', 'A')) {
	print "1..0 # Unicode::Collate cannot get a Unicode code point\n";
	exit 0;
    }
    if ($ENV{PERL_CORE}) {
	chdir('t') if -d 't';
	@INC = $^O eq 'MacOS' ? qw(::lib) : qw(../lib);
    }
}

use strict;
use warnings;
BEGIN { $| = 1; print "1..616\n"; }
my $count = 0;
sub ok ($;$) {
    my $p = my $r = shift;
    if (@_) {
	my $x = shift;
	$p = !defined $x ? !defined $r : !defined $r ? 0 : $r eq $x;
    }
    print $p ? "ok" : "not ok", ' ', ++$count, "\n";
}

use Unicode::Collate::Locale;

ok(1);

#########################

my $objCu = Unicode::Collate::Locale->
    new(locale => 'CU', normalization => undef);

ok($objCu->getlocale, 'cu');

# 2

### diacritical marks and combining letters ###

# tailored secondary collation elements
my @sec = (
  "\x{487}",  "\x{485}",  "\x{486}",  "\x{301}",  "\x{300}",  "\x{311}",
  "\x{483}",  "\x{306}",  "\x{308}",  "\x{2DF6}", "\x{2DE0}", "\x{2DE1}",
  "\x{2DE2}", "\x{2DE3}", "\x{2DF7}", "\x{A674}", "\x{2DE4}", "\x{2DE5}",
  "\x{A675}", "\x{A676}", "\x{2DE6}", "\x{2DE7}", "\x{2DE8}", "\x{2DE9}",
  "\x{2DEA}", "\x{A67B}", "\x{2DEB}", "\x{2DEC}", "\x{2DED}", "\x{2DEE}",
  "\x{2DF9}", "\x{A677}", "\x{A69E}", "\x{2DEF}", "\x{2DF0}", "\x{2DF1}",
  "\x{2DF2}", "\x{2DF3}", "\x{33E}",  "\x{A679}", "\x{A67F}", "\x{2DFA}",
  "\x{2DFB}", "\x{2DFE}", "\x{2DFC}", "\x{2DFD}", "\x{2DF4}", "\x{332}",
  "\x{327}",  "\x{328}" # CEDILLA and OGONEK (not tailored)
);

$objCu->change(level => 1);

for (my $i = 1; $i < @sec; $i++) {
    ok($objCu->eq("a$sec[$i-1]", "a$sec[$i]"));
}

# 51

$objCu->change(level => 2);

for (my $i = 1; $i < @sec; $i++) {
    ok($objCu->lt("a$sec[$i-1]", "a$sec[$i]"));
}

ok($objCu->gt("a\x{309A}", "a\x{3099}")); # KANA VOICED and SEMI-VOICED

for (my $i = 1; $i < @sec; $i++) {
    ok($objCu->lt("a\x{309A}b$sec[$i-1]", "a\x{3099}b$sec[$i]"));
}

# 150

$objCu->change(backwards => undef);

for (my $i = 1; $i < @sec; $i++) {
    ok($objCu->lt("a$sec[$i-1]", "a$sec[$i]"));
}

ok($objCu->gt("a\x{309A}", "a\x{3099}")); # KANA VOICED and SEMI-VOICED

for (my $i = 1; $i < @sec; $i++) {
    ok($objCu->gt("a\x{309A}b$sec[$i-1]", "a\x{3099}b$sec[$i]"));
}

# 249

$objCu->change(level => 3);

ok($objCu->eq("", "\x{0487}"));
ok($objCu->eq("", "\x{A67C}"));
ok($objCu->eq("", "\x{A67E}"));

ok($objCu->eq("a\x{487}", "a\x{A67C}"));
ok($objCu->eq("a\x{487}", "a\x{A67E}"));
ok($objCu->eq("a\x{308}", "a\x{30F}"));
ok($objCu->eq("a\x{33E}", "a\x{A678}"));
ok($objCu->eq("a\x{33E}", "a\x{2E2F}"));
ok($objCu->eq("a\x{A67F}","a\x{A67D}"));
ok($objCu->eq("a\x{A67F}","a\x{A67A}"));

ok($objCu->eq("a\x{2DF5}","a\x{2DED}\x{2DEE}"));

# 260

### normal letters ###

$objCu->change(level => 1);

ok($objCu->lt("\x{410}z", "\x{411}"));
ok($objCu->lt("\x{411}z", "\x{412}"));
ok($objCu->lt("\x{412}z", "\x{413}"));
ok($objCu->lt("\x{413}z", "\x{414}"));
ok($objCu->lt("\x{414}z", "\x{415}"));
ok($objCu->lt("\x{415}z", "\x{416}"));
ok($objCu->lt("\x{416}z", "\x{405}")); # Dze
ok($objCu->lt("\x{405}z", "\x{417}"));
ok($objCu->lt("\x{417}z", "\x{418}"));
ok($objCu->lt("\x{418}z", "\x{406}")); # Byel-Ukr I
ok($objCu->lt("\x{406}z", "\x{41a}"));
ok($objCu->lt("\x{41a}z", "\x{41b}"));
ok($objCu->lt("\x{41b}z", "\x{41c}"));
ok($objCu->lt("\x{41c}z", "\x{41d}"));
ok($objCu->lt("\x{41d}z", "\x{40a}")); # Nje
ok($objCu->lt("\x{40a}z", "\x{50a}")); # Komi Nje
ok($objCu->lt("\x{50a}z", "\x{41e}"));
ok($objCu->lt("\x{41e}z", "\x{41f}"));
ok($objCu->lt("\x{41f}z", "\x{420}"));
ok($objCu->lt("\x{420}z", "\x{421}"));
ok($objCu->lt("\x{421}z", "\x{422}"));
ok($objCu->lt("\x{422}z", "\x{40b}")); # Tshe
ok($objCu->lt("\x{40b}z", "\x{423}"));
ok($objCu->lt("\x{423}z", "\x{424}"));
ok($objCu->lt("\x{424}z", "\x{425}"));
ok($objCu->lt("\x{425}z", "\x{426}"));
ok($objCu->lt("\x{426}z", "\x{427}"));
ok($objCu->lt("\x{427}z", "\x{428}"));
ok($objCu->lt("\x{428}z", "\x{429}"));
ok($objCu->lt("\x{429}z", "\x{42a}"));
ok($objCu->lt("\x{42a}z", "\x{42b}"));
ok($objCu->lt("\x{42b}z", "\x{42c}"));
ok($objCu->lt("\x{42c}z", "\x{42d}"));
ok($objCu->lt("\x{42d}z", "\x{462}")); # Yat
ok($objCu->lt("\x{462}z", "\x{42e}"));
ok($objCu->lt("\x{42e}z", "\x{46a}")); # Big Yus
ok($objCu->lt("\x{46a}z", "\x{42f}"));
ok($objCu->lt("\x{42f}z", "\x{466}")); # Little Yus
ok($objCu->lt("\x{466}z", "\x{46e}")); # Ksi
ok($objCu->lt("\x{46e}z", "\x{470}")); # Psi
ok($objCu->lt("\x{470}z", "\x{472}")); # Fita
ok($objCu->lt("\x{472}z", "\x{474}")); # Izhitsa

# 302

$objCu->change(level => 2);

ok($objCu->eq("\x{430}", "\x{410}"));
ok($objCu->eq("\x{431}", "\x{411}"));
ok($objCu->eq("\x{432}", "\x{412}"));
ok($objCu->eq("\x{433}", "\x{413}"));
ok($objCu->eq("\x{434}", "\x{414}"));
ok($objCu->eq("\x{435}", "\x{415}"));
ok($objCu->eq("\x{436}", "\x{416}"));
ok($objCu->eq("\x{455}", "\x{405}")); # Dze
ok($objCu->eq("\x{437}", "\x{417}"));
ok($objCu->eq("\x{438}", "\x{418}"));
ok($objCu->eq("\x{456}", "\x{406}")); # Byel-Ukr I
ok($objCu->eq("\x{43a}", "\x{41a}"));
ok($objCu->eq("\x{43b}", "\x{41b}"));
ok($objCu->eq("\x{43c}", "\x{41c}"));
ok($objCu->eq("\x{43d}", "\x{41d}"));
ok($objCu->eq("\x{45a}", "\x{40a}")); # Nje
ok($objCu->eq("\x{50b}", "\x{50a}")); # Komi Nje
ok($objCu->eq("\x{43e}", "\x{41e}"));
ok($objCu->eq("\x{43f}", "\x{41f}"));
ok($objCu->eq("\x{440}", "\x{420}"));
ok($objCu->eq("\x{441}", "\x{421}"));
ok($objCu->eq("\x{442}", "\x{422}"));
ok($objCu->eq("\x{45b}", "\x{40b}")); # Tshe
ok($objCu->eq("\x{443}", "\x{423}"));
ok($objCu->eq("\x{444}", "\x{424}"));
ok($objCu->eq("\x{445}", "\x{425}"));
ok($objCu->eq("\x{446}", "\x{426}"));
ok($objCu->eq("\x{447}", "\x{427}"));
ok($objCu->eq("\x{448}", "\x{428}"));
ok($objCu->eq("\x{449}", "\x{429}"));
ok($objCu->eq("\x{44a}", "\x{42a}"));
ok($objCu->eq("\x{44b}", "\x{42b}"));
ok($objCu->eq("\x{44c}", "\x{42c}"));
ok($objCu->eq("\x{44d}", "\x{42d}"));
ok($objCu->eq("\x{463}", "\x{462}")); # Yat
ok($objCu->eq("\x{44e}", "\x{42e}"));
ok($objCu->eq("\x{46b}", "\x{46a}")); # Big Yus
ok($objCu->eq("\x{44f}", "\x{42f}"));
ok($objCu->eq("\x{467}", "\x{466}")); # Little Yus
ok($objCu->eq("\x{46f}", "\x{46e}")); # Ksi
ok($objCu->eq("\x{471}", "\x{470}")); # Psi
ok($objCu->eq("\x{473}", "\x{472}")); # Fita
ok($objCu->eq("\x{475}", "\x{474}")); # Izhitsa

# 345

ok($objCu->eq("\x{435}", "\x{454}")); # ie / ukr ie
ok($objCu->eq("\x{435}", "\x{404}")); # ie / UKR IE
ok($objCu->eq("\x{415}", "\x{454}")); # IE / ukr ie
ok($objCu->eq("\x{415}", "\x{404}")); # IE / UKR IE
ok($objCu->eq("\x{454}", "\x{404}")); # ukr ie / UKR IE

ok($objCu->eq("\x{47B}", "\x{47A}")); # round omega / ROUND OMEGA
ok($objCu->eq("\x{47B}", "\x{43E}")); # round omega / o
ok($objCu->eq("\x{47B}", "\x{41E}")); # round omega / O
ok($objCu->eq("\x{47A}", "\x{43E}")); # ROUND OMEGA / o
ok($objCu->eq("\x{47A}", "\x{41E}")); # ROUND OMEGA / O
ok($objCu->eq("\x{43E}", "\x{461}")); # o / omega
ok($objCu->eq("\x{43E}", "\x{460}")); # o / OMEGA
ok($objCu->eq("\x{41E}", "\x{461}")); # O / omega
ok($objCu->eq("\x{41E}", "\x{460}")); # O / OMEGA
ok($objCu->eq("\x{461}", "\x{460}")); # omega / OMEGA
ok($objCu->eq("\x{461}", "\x{A64D}")); # omega / broad omega
ok($objCu->eq("\x{461}", "\x{A64C}")); # omega / BROAD OMEGA
ok($objCu->eq("\x{460}", "\x{A64D}")); # OMEGA / broad omega
ok($objCu->eq("\x{460}", "\x{A64C}")); # OMEGA / BROAD OMEGA
ok($objCu->eq("\x{A64D}","\x{A64C}")); # broad omega / BROAD OMEGA

ok($objCu->eq("\x{479}", "\x{478}"));  # uk / UK
ok($objCu->eq("\x{479}", "\x{A64B}")); # uk / monograph uk
ok($objCu->eq("\x{479}", "\x{A64A}")); # uk / MONOGRAPH UK
ok($objCu->eq("\x{478}", "\x{A64B}")); # UK / monograph uk
ok($objCu->eq("\x{478}", "\x{A64A}")); # UK / MONOGRAPH UK
ok($objCu->eq("\x{A64B}","\x{A64A}")); # monograph uk / MONOGRAPH UK
ok($objCu->eq("\x{A64B}","\x{443}"));  # monograph uk / u
ok($objCu->eq("\x{A64B}","\x{423}"));  # monograph uk / U
ok($objCu->eq("\x{A64A}","\x{443}"));  # MONOGRAPH UK / u
ok($objCu->eq("\x{A64A}","\x{423}"));  # MONOGRAPH UK / U

ok($objCu->eq("\x{A657}","\x{A656}")); # iotified a / IOTIFIED A
ok($objCu->eq("\x{A657}","\x{467}"));  # iotified a / little yus
ok($objCu->eq("\x{A657}","\x{466}"));  # iotified a / LITTLE YUS
ok($objCu->eq("\x{A656}","\x{467}"));  # IOTIFIED A / little yus
ok($objCu->eq("\x{A656}","\x{466}"));  # IOTIFIED A / LITTLE YUS

# 380

$objCu->change(level => 3);

ok($objCu->gt("\x{430}", "\x{410}"));
ok($objCu->gt("\x{431}", "\x{411}"));
ok($objCu->gt("\x{432}", "\x{412}"));
ok($objCu->gt("\x{433}", "\x{413}"));
ok($objCu->gt("\x{434}", "\x{414}"));
ok($objCu->gt("\x{435}", "\x{415}"));
ok($objCu->gt("\x{436}", "\x{416}"));
ok($objCu->gt("\x{455}", "\x{405}")); # Dze
ok($objCu->gt("\x{437}", "\x{417}"));
ok($objCu->gt("\x{438}", "\x{418}"));
ok($objCu->gt("\x{456}", "\x{406}")); # Byel-Ukr I
ok($objCu->gt("\x{43a}", "\x{41a}"));
ok($objCu->gt("\x{43b}", "\x{41b}"));
ok($objCu->gt("\x{43c}", "\x{41c}"));
ok($objCu->gt("\x{43d}", "\x{41d}"));
ok($objCu->gt("\x{45a}", "\x{40a}")); # Nje
ok($objCu->gt("\x{50b}", "\x{50a}")); # Komi Nje
ok($objCu->gt("\x{43e}", "\x{41e}"));
ok($objCu->gt("\x{43f}", "\x{41f}"));
ok($objCu->gt("\x{440}", "\x{420}"));
ok($objCu->gt("\x{441}", "\x{421}"));
ok($objCu->gt("\x{442}", "\x{422}"));
ok($objCu->gt("\x{45b}", "\x{40b}")); # Tshe
ok($objCu->gt("\x{443}", "\x{423}"));
ok($objCu->gt("\x{444}", "\x{424}"));
ok($objCu->gt("\x{445}", "\x{425}"));
ok($objCu->gt("\x{446}", "\x{426}"));
ok($objCu->gt("\x{447}", "\x{427}"));
ok($objCu->gt("\x{448}", "\x{428}"));
ok($objCu->gt("\x{449}", "\x{429}"));
ok($objCu->gt("\x{44a}", "\x{42a}"));
ok($objCu->gt("\x{44b}", "\x{42b}"));
ok($objCu->gt("\x{44c}", "\x{42c}"));
ok($objCu->gt("\x{44d}", "\x{42d}"));
ok($objCu->gt("\x{463}", "\x{462}")); # Yat
ok($objCu->gt("\x{44e}", "\x{42e}"));
ok($objCu->gt("\x{46b}", "\x{46a}")); # Big Yus
ok($objCu->gt("\x{44f}", "\x{42f}"));
ok($objCu->gt("\x{467}", "\x{466}")); # Little Yus
ok($objCu->gt("\x{46f}", "\x{46e}")); # Ksi
ok($objCu->gt("\x{471}", "\x{470}")); # Psi
ok($objCu->gt("\x{473}", "\x{472}")); # Fita
ok($objCu->gt("\x{475}", "\x{474}")); # Izhitsa

# 423

ok($objCu->lt("\x{435}", "\x{454}")); # ie / ukr ie
ok($objCu->lt("\x{435}", "\x{404}")); # ie / UKR IE
ok($objCu->lt("\x{415}", "\x{454}")); # IE / ukr ie
ok($objCu->lt("\x{415}", "\x{404}")); # IE / UKR IE
ok($objCu->gt("\x{454}", "\x{404}")); # ukr ie / UKR IE

ok($objCu->gt("\x{47B}", "\x{47A}")); # round omega / ROUND OMEGA
ok($objCu->lt("\x{47B}", "\x{43E}")); # round omega / o
ok($objCu->lt("\x{47B}", "\x{41E}")); # round omega / O
ok($objCu->lt("\x{47A}", "\x{43E}")); # ROUND OMEGA / o
ok($objCu->lt("\x{47A}", "\x{41E}")); # ROUND OMEGA / O
ok($objCu->lt("\x{43E}", "\x{461}")); # o / omega
ok($objCu->lt("\x{43E}", "\x{460}")); # o / OMEGA
ok($objCu->lt("\x{41E}", "\x{461}")); # O / omega
ok($objCu->lt("\x{41E}", "\x{460}")); # O / OMEGA
ok($objCu->gt("\x{461}", "\x{460}")); # omega / OMEGA
ok($objCu->lt("\x{461}", "\x{A64D}")); # omega / broad omega
ok($objCu->lt("\x{461}", "\x{A64C}")); # omega / BROAD OMEGA
ok($objCu->lt("\x{460}", "\x{A64D}")); # OMEGA / broad omega
ok($objCu->lt("\x{460}", "\x{A64C}")); # OMEGA / BROAD OMEGA
ok($objCu->gt("\x{A64D}","\x{A64C}")); # broad omega / BROAD OMEGA

ok($objCu->gt("\x{479}", "\x{478}"));  # uk / UK
ok($objCu->lt("\x{479}", "\x{A64B}")); # uk / monograph uk
ok($objCu->lt("\x{479}", "\x{A64A}")); # uk / MONOGRAPH UK
ok($objCu->lt("\x{478}", "\x{A64B}")); # UK / monograph uk
ok($objCu->lt("\x{478}", "\x{A64A}")); # UK / MONOGRAPH UK
ok($objCu->gt("\x{A64B}","\x{A64A}")); # monograph uk / MONOGRAPH UK
ok($objCu->lt("\x{A64B}","\x{443}"));  # monograph uk / u
ok($objCu->lt("\x{A64B}","\x{423}"));  # monograph uk / U
ok($objCu->lt("\x{A64A}","\x{443}"));  # MONOGRAPH UK / u
ok($objCu->lt("\x{A64A}","\x{423}"));  # MONOGRAPH UK / U

ok($objCu->gt("\x{A657}","\x{A656}")); # iotified a / IOTIFIED A
ok($objCu->lt("\x{A657}","\x{467}"));  # iotified a / little yus
ok($objCu->lt("\x{A657}","\x{466}"));  # iotified a / LITTLE YUS
ok($objCu->lt("\x{A656}","\x{467}"));  # IOTIFIED A / little yus
ok($objCu->lt("\x{A656}","\x{466}"));  # IOTIFIED A / LITTLE YUS

# 458

$objCu->change(upper_before_lower => 0);

ok($objCu->lt("\x{430}", "\x{410}"));
ok($objCu->lt("\x{431}", "\x{411}"));
ok($objCu->lt("\x{432}", "\x{412}"));
ok($objCu->lt("\x{433}", "\x{413}"));
ok($objCu->lt("\x{434}", "\x{414}"));
ok($objCu->lt("\x{435}", "\x{415}"));
ok($objCu->lt("\x{436}", "\x{416}"));
ok($objCu->lt("\x{455}", "\x{405}")); # Dze
ok($objCu->lt("\x{437}", "\x{417}"));
ok($objCu->lt("\x{438}", "\x{418}"));
ok($objCu->lt("\x{456}", "\x{406}")); # Byel-Ukr I
ok($objCu->lt("\x{43a}", "\x{41a}"));
ok($objCu->lt("\x{43b}", "\x{41b}"));
ok($objCu->lt("\x{43c}", "\x{41c}"));
ok($objCu->lt("\x{43d}", "\x{41d}"));
ok($objCu->lt("\x{45a}", "\x{40a}")); # Nje
ok($objCu->lt("\x{50b}", "\x{50a}")); # Komi Nje
ok($objCu->lt("\x{43e}", "\x{41e}"));
ok($objCu->lt("\x{43f}", "\x{41f}"));
ok($objCu->lt("\x{440}", "\x{420}"));
ok($objCu->lt("\x{441}", "\x{421}"));
ok($objCu->lt("\x{442}", "\x{422}"));
ok($objCu->lt("\x{45b}", "\x{40b}")); # Tshe
ok($objCu->lt("\x{443}", "\x{423}"));
ok($objCu->lt("\x{444}", "\x{424}"));
ok($objCu->lt("\x{445}", "\x{425}"));
ok($objCu->lt("\x{446}", "\x{426}"));
ok($objCu->lt("\x{447}", "\x{427}"));
ok($objCu->lt("\x{448}", "\x{428}"));
ok($objCu->lt("\x{449}", "\x{429}"));
ok($objCu->lt("\x{44a}", "\x{42a}"));
ok($objCu->lt("\x{44b}", "\x{42b}"));
ok($objCu->lt("\x{44c}", "\x{42c}"));
ok($objCu->lt("\x{44d}", "\x{42d}"));
ok($objCu->lt("\x{463}", "\x{462}")); # Yat
ok($objCu->lt("\x{44e}", "\x{42e}"));
ok($objCu->lt("\x{46b}", "\x{46a}")); # Big Yus
ok($objCu->lt("\x{44f}", "\x{42f}"));
ok($objCu->lt("\x{467}", "\x{466}")); # Little Yus
ok($objCu->lt("\x{46f}", "\x{46e}")); # Ksi
ok($objCu->lt("\x{471}", "\x{470}")); # Psi
ok($objCu->lt("\x{473}", "\x{472}")); # Fita
ok($objCu->lt("\x{475}", "\x{474}")); # Izhitsa

# 501

ok($objCu->lt("\x{435}", "\x{454}")); # ie / ukr ie
ok($objCu->lt("\x{435}", "\x{404}")); # ie / UKR IE
ok($objCu->lt("\x{415}", "\x{454}")); # IE / ukr ie
ok($objCu->lt("\x{415}", "\x{404}")); # IE / UKR IE
ok($objCu->lt("\x{454}", "\x{404}")); # ukr ie / UKR IE

ok($objCu->lt("\x{47B}", "\x{47A}")); # round omega / ROUND OMEGA
ok($objCu->lt("\x{47B}", "\x{43E}")); # round omega / o
ok($objCu->lt("\x{47B}", "\x{41E}")); # round omega / O
ok($objCu->lt("\x{47A}", "\x{43E}")); # ROUND OMEGA / o
ok($objCu->lt("\x{47A}", "\x{41E}")); # ROUND OMEGA / O
ok($objCu->lt("\x{43E}", "\x{461}")); # o / omega
ok($objCu->lt("\x{43E}", "\x{460}")); # o / OMEGA
ok($objCu->lt("\x{41E}", "\x{461}")); # O / omega
ok($objCu->lt("\x{41E}", "\x{460}")); # O / OMEGA
ok($objCu->lt("\x{461}", "\x{460}")); # omega / OMEGA
ok($objCu->lt("\x{461}", "\x{A64D}")); # omega / broad omega
ok($objCu->lt("\x{461}", "\x{A64C}")); # omega / BROAD OMEGA
ok($objCu->lt("\x{460}", "\x{A64D}")); # OMEGA / broad omega
ok($objCu->lt("\x{460}", "\x{A64C}")); # OMEGA / BROAD OMEGA
ok($objCu->lt("\x{A64D}","\x{A64C}")); # broad omega / BROAD OMEGA

ok($objCu->lt("\x{479}", "\x{478}"));  # uk / UK
ok($objCu->lt("\x{479}", "\x{A64B}")); # uk / monograph uk
ok($objCu->lt("\x{479}", "\x{A64A}")); # uk / MONOGRAPH UK
ok($objCu->lt("\x{478}", "\x{A64B}")); # UK / monograph uk
ok($objCu->lt("\x{478}", "\x{A64A}")); # UK / MONOGRAPH UK
ok($objCu->lt("\x{A64B}","\x{A64A}")); # monograph uk / MONOGRAPH UK
ok($objCu->lt("\x{A64B}","\x{443}"));  # monograph uk / u
ok($objCu->lt("\x{A64B}","\x{423}"));  # monograph uk / U
ok($objCu->lt("\x{A64A}","\x{443}"));  # MONOGRAPH UK / u
ok($objCu->lt("\x{A64A}","\x{423}"));  # MONOGRAPH UK / U

ok($objCu->lt("\x{A657}","\x{A656}")); # iotified a / IOTIFIED A
ok($objCu->lt("\x{A657}","\x{467}"));  # iotified a / little yus
ok($objCu->lt("\x{A657}","\x{466}"));  # iotified a / LITTLE YUS
ok($objCu->lt("\x{A656}","\x{467}"));  # IOTIFIED A / little yus
ok($objCu->lt("\x{A656}","\x{466}"));  # IOTIFIED A / LITTLE YUS

# 536

# equiv.

ok($objCu->eq("\x{1C81}", "\x{434}"));
ok($objCu->eq("\x{A641}", "\x{437}"));
ok($objCu->eq("\x{A640}", "\x{417}"));
ok($objCu->eq("\x{1C82}", "\x{43E}"));

ok($objCu->eq("\x{479}", "\x{43E}\x{443}"));
ok($objCu->eq("\x{479}","\x{1C82}\x{443}"));
ok($objCu->eq("\x{478}", "\x{41E}\x{443}"));
ok($objCu->eq("\x{478}", "\x{41E}\x{423}"));

# 544

# decomp. equiv.

ok($objCu->eq("\x{457}", "\x{456}\x{308}"));
ok($objCu->eq("\x{407}", "\x{406}\x{308}"));
ok($objCu->eq("\x{439}", "\x{438}\x{306}"));
ok($objCu->eq("\x{419}", "\x{418}\x{306}"));
ok($objCu->eq("\x{4E6}", "\x{41E}\x{308}"));
ok($objCu->eq("\x{4E7}", "\x{43E}\x{308}"));
ok($objCu->eq("\x{45E}", "\x{443}\x{306}"));
ok($objCu->eq("\x{40E}", "\x{423}\x{306}"));
ok($objCu->eq("\x{4F1}", "\x{443}\x{308}"));
ok($objCu->eq("\x{4F0}", "\x{423}\x{308}"));
ok($objCu->eq("\x{4F3}", "\x{443}\x{30B}"));
ok($objCu->eq("\x{4F2}", "\x{423}\x{30B}"));
ok($objCu->eq("\x{4EF}", "\x{443}\x{304}"));
ok($objCu->eq("\x{4EE}", "\x{423}\x{304}"));

ok($objCu->eq("\x{47C}", "\x{A64C}\x{486}\x{311}"));
ok($objCu->eq("\x{47D}", "\x{A64D}\x{486}\x{311}"));
ok($objCu->eq("\x{47E}", "\x{460}\x{442}"));
ok($objCu->eq("\x{47F}", "\x{461}\x{442}"));

# 562

# misc. equiv.

ok($objCu->eq("\x{4D1}", "\x{430}\x{306}"));
ok($objCu->eq("\x{4D0}", "\x{410}\x{306}"));
ok($objCu->eq("\x{4D3}", "\x{430}\x{308}"));
ok($objCu->eq("\x{4D2}", "\x{410}\x{308}"));
ok($objCu->eq("\x{450}", "\x{435}\x{300}"));
ok($objCu->eq("\x{400}", "\x{415}\x{300}"));
ok($objCu->eq("\x{4D7}", "\x{435}\x{306}"));
ok($objCu->eq("\x{4D6}", "\x{415}\x{306}"));
ok($objCu->eq("\x{451}", "\x{435}\x{308}"));
ok($objCu->eq("\x{401}", "\x{415}\x{308}"));
ok($objCu->eq("\x{45D}", "\x{438}\x{300}"));
ok($objCu->eq("\x{40D}", "\x{418}\x{300}"));
ok($objCu->eq("\x{4E5}", "\x{438}\x{308}"));
ok($objCu->eq("\x{4E4}", "\x{418}\x{308}"));
ok($objCu->eq("\x{4ED}", "\x{44D}\x{308}"));
ok($objCu->eq("\x{4EC}", "\x{42D}\x{308}"));
ok($objCu->eq("\x{477}", "\x{475}\x{30F}"));
ok($objCu->eq("\x{476}", "\x{474}\x{30F}"));

# 580

# latin equiv.

ok($objCu->eq("a\x{300}", pack('U', 0xE0)));
ok($objCu->eq("A\x{300}", pack('U', 0xC0)));
ok($objCu->eq("e\x{300}", pack('U', 0xE8)));
ok($objCu->eq("E\x{300}", pack('U', 0xC8)));
ok($objCu->eq("i\x{300}", pack('U', 0xEC)));
ok($objCu->eq("I\x{300}", pack('U', 0xCC)));
ok($objCu->eq("o\x{300}", pack('U', 0xF2)));
ok($objCu->eq("O\x{300}", pack('U', 0xD2)));
ok($objCu->eq("u\x{300}", pack('U', 0xF9)));
ok($objCu->eq("U\x{300}", pack('U', 0xD9)));
ok($objCu->eq("y\x{300}", "\x{1EF3}"));
ok($objCu->eq("Y\x{300}", "\x{1EF2}"));

ok($objCu->eq("a\x{301}", pack('U', 0xE1)));
ok($objCu->eq("A\x{301}", pack('U', 0xC1)));
ok($objCu->eq("e\x{301}", pack('U', 0xE9)));
ok($objCu->eq("E\x{301}", pack('U', 0xC9)));
ok($objCu->eq("i\x{301}", pack('U', 0xED)));
ok($objCu->eq("I\x{301}", pack('U', 0xCD)));
ok($objCu->eq("o\x{301}", pack('U', 0xF3)));
ok($objCu->eq("O\x{301}", pack('U', 0xD3)));
ok($objCu->eq("u\x{301}", pack('U', 0xFA)));
ok($objCu->eq("U\x{301}", pack('U', 0xDA)));
ok($objCu->eq("y\x{301}", pack('U', 0xFD)));
ok($objCu->eq("Y\x{301}", pack('U', 0xDD)));

ok($objCu->eq("a\x{308}", pack('U', 0xE4)));
ok($objCu->eq("A\x{308}", pack('U', 0xC4)));
ok($objCu->eq("e\x{308}", pack('U', 0xEB)));
ok($objCu->eq("E\x{308}", pack('U', 0xCB)));
ok($objCu->eq("i\x{308}", pack('U', 0xEF)));
ok($objCu->eq("I\x{308}", pack('U', 0xCF)));
ok($objCu->eq("o\x{308}", pack('U', 0xF6)));
ok($objCu->eq("O\x{308}", pack('U', 0xD6)));
ok($objCu->eq("u\x{308}", pack('U', 0xFC)));
ok($objCu->eq("U\x{308}", pack('U', 0xDC)));
ok($objCu->eq("y\x{308}", pack('U', 0xFF)));
ok($objCu->eq("Y\x{308}", "\x{178}"));

# 616
