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()'); }