use Test::More no_plan;
use strict;
use warnings;
use_ok('MARC::Charset::Code');
ONE_BYTE_CHAR:
{
my $code = MARC::Charset::Code->new();
$code->name('UPPERCASE POLISH L');
$code->marc('A1');
$code->ucs('0141');
$code->charset('45');
is(chr(0x45). ':' . chr(0xA1), $code->marc8_hash_code(), 'marc8_hash_code()');
is(int(0x0141), $code->utf8_hash_code(), 'utf8_hash_code()');
is('EXTENDED_LATIN', $code->charset_name(), 'charset_name()');
}
THREE_BYTE_CHAR:
{
my $code = MARC::Charset::Code->new();
$code->name('EACC component character');
$code->marc('212A45');
$code->ucs('E8F2');
$code->charset('31');
is(chr(0x31).':'.chr(0x21).chr(0x2A).chr(0x45), $code->marc8_hash_code(),
'three byte hash_code()');
is(int(0xE8F2), $code->utf8_hash_code(), 'utf_hash_code()');
is('CJK', $code->charset_name(), 'three byte charset_name()');
}