use strict;
use warnings;
use Encode;
use Encode::JP::Mobile ':props';
use Test::More 'no_plan';
my @tests = qw(
InDoCoMoPictograms docomo
InSoftBankPictograms softbank
InAirEdgePictograms airh
InKDDIAutoPictograms kddi-auto
InKDDICP932Pictograms kddi
);
while (my($prop, $enc) = splice @tests, 0, 2) {
no strict 'refs';
my $range = &$prop;
my @chars = map {
my($from, $to) = split /\t/;
$to ? (hex($from)..hex($to)) : (hex($from));
} split /\n/, $range;
for my $code (@chars) {
my $char = chr $code;
my $encoding = "x-sjis-$enc-raw";
$encoding =~ s/x-sjis-kddi-raw/x-sjis-kddi-cp932-raw/;
my $byte = eval { encode($encoding, $char, Encode::FB_CROAK) };
ok $byte, sprintf("U+%X is in %s range", $code, $enc);
if ($byte) {
my $bytes = unpack "H*", $byte;
$bytes =~ s/(..)/\\x$1/g;
is decode($encoding, $byte), chr($code), "$code <-> $bytes roundtrip";
}
}
}