BEGIN { $| = 1; print "1..17\n"; }
use Unicode::Transform ':all';
use strict;
use warnings;
print "ok 1\n";
#####
our %under = (
uv => 0x1234ABCD,
utf32le => "\xCD\xAB\x34\x12",
utf32be => "\x12\x34\xAB\xCD",
);
our %above = (
uv => 0xABCD1234,
utf32le => "\x34\x12\xCD\xAB",
utf32be => "\xAB\xCD\x12\x34",
);
#### conv : 2..9
print utf32le_to_utf32le(\&chr_utf32le, $under{utf32le}) eq $under{utf32le}
? "ok" : "not ok", " 2\n";
print utf32le_to_utf32be(\&chr_utf32be, $under{utf32le}) eq $under{utf32be}
? "ok" : "not ok", " 3\n";
print utf32be_to_utf32le(\&chr_utf32le, $under{utf32be}) eq $under{utf32le}
? "ok" : "not ok", " 4\n";
print utf32be_to_utf32be(\&chr_utf32be, $under{utf32be}) eq $under{utf32be}
? "ok" : "not ok", " 5\n";
print utf32le_to_utf32le(\&chr_utf32le, $above{utf32le}) eq $above{utf32le}
? "ok" : "not ok", " 6\n";
print utf32le_to_utf32be(\&chr_utf32be, $above{utf32le}) eq $above{utf32be}
? "ok" : "not ok", " 7\n";
print utf32be_to_utf32le(\&chr_utf32le, $above{utf32be}) eq $above{utf32le}
? "ok" : "not ok", " 8\n";
print utf32be_to_utf32be(\&chr_utf32be, $above{utf32be}) eq $above{utf32be}
? "ok" : "not ok", " 9\n";
#### chr : 10..13
print ord_utf32le($under{utf32le}) == $under{uv}
? "ok" : "not ok", " 10\n";
print ord_utf32be($under{utf32be}) == $under{uv}
? "ok" : "not ok", " 11\n";
print ord_utf32le($above{utf32le}) == $above{uv}
? "ok" : "not ok", " 12\n";
print ord_utf32be($above{utf32be}) == $above{uv}
? "ok" : "not ok", " 13\n";
#### chr : 14..17
print chr_utf32le($under{uv}) eq $under{utf32le}
? "ok" : "not ok", " 14\n";
print chr_utf32be($under{uv}) eq $under{utf32be}
? "ok" : "not ok", " 15\n";
print chr_utf32le($above{uv}) eq $above{utf32le}
? "ok" : "not ok", " 16\n";
print chr_utf32be($above{uv}) eq $above{utf32be}
? "ok" : "not ok", " 17\n";
####
1;