Blob Blame History Raw
use strict;
# Adjust the number here!
use Test::More tests => 28;

use_ok('Encode');
use_ok('Encode::EUCJPASCII');
test('eucjp');
test('7bit');
# Add more test here!

sub test {
    my $in = shift;
    local($/) = '';
    open WORDS, "testin/$in.txt" or die "open: $!";
    while (<WORDS>) {
	next if /^#/;
	my @w = split /\n/, $_;
	my ($renc, $rdec) = split /,/, shift @w;
	my $cset = shift @w;
	my $byte = eval(shift @w);
	die $@ if $@ or !$byte;
	my $uni = eval(join "\n", @w);
	die $@ if $@ or !$uni;
	my $enc = encode($cset, $uni);
	my $dec = decode($cset, $byte);

	$enc = sprintf "\\x%*v02X", "\\x", $enc;
	$byte = sprintf "\\x%*v02X", "\\x", $byte;
	$dec = sprintf "\\x{%*v04X}", "}\\x{", $dec;
	$uni = sprintf "\\x{%*v04X}", "}\\x{", $uni;

	if ($renc eq 'GOOD') {
	    is($enc, $byte);
	} elsif ($renc eq 'BAD') {
	    isnt($enc, $byte);
	}
	if ($rdec eq 'GOOD') {
	    is($dec, $uni);
	} elsif ($rdec eq 'BAD') {
	    isnt($dec, $uni);
	}
    }
}