The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More;

use Encode;
use Encode::JP::Mobile ':props';

eval { require YAML };
plan skip_all => $@ if $@;

my $dat = YAML::LoadFile("dat/softbank-table.yaml");

plan tests => 6 * @$dat;

for my $r (@$dat) {
    my $sjis = pack "H*", $r->{sjis};
    my $unicode = chr hex $r->{unicode};
    is decode("x-sjis-softbank", $sjis), $unicode, $r->{unicode};
    is encode("x-sjis-softbank", $unicode), $sjis, $r->{unicode};

    # not testing the actual bytes, but just check if it can be
    # encoded and different from cp932
SKIP: {
        if ($r->{unicode} =~ /E25[5-7]/) {
            skip "these characters are removed in PDF, hence not in .ucm" => 1;
        }
        my $sjis_auto = encode("x-sjis-softbank-auto", $unicode);
        isnt $sjis_auto, encode("cp932", $unicode);
    }

    ok $unicode =~ /^\p{InSoftBankPictograms}+$/;
    ok $unicode =~ /^\p{InMobileJPPictograms}+$/;
    ok $unicode !~ /^\p{InDoCoMoPictograms}+$/;
}