use strict; use warnings; use Test::More tests => 14; use Encode::JP::Mobile ':props'; ok InKDDISoftBankConflicts(); ok InKDDICP932Pictograms(); ok InKDDIAutoPictograms(); ok InKDDIPictograms(); ok "\x{E501}" =~ /\p{InKDDISoftBankConflicts}/; ok "\x{E44C}" !~ /\p{InKDDISoftBankConflicts}/; ok "\x{E501}" =~ /\p{InKDDICP932Pictograms}/; ok "\x{F0FC}" !~ /\p{InKDDICP932Pictograms}/; ok "\x{F0FC}" =~ /\p{InKDDIAutoPictograms}/; ok "\x{E501}" !~ /\p{InKDDIAutoPictograms}/; ok "\x{F0FC}" =~ /\p{InKDDIPictograms}/; ok "\x{E501}" =~ /\p{InKDDIPictograms}/; my $possibly_kddi = "\x{E589} \x{E501}"; # E589 is only in KDDI is guess_carrier($possibly_kddi), "kddi"; my $possibly_softbank = "\x{E44C} \x{E501}"; # E44C is only in SoftBank is guess_carrier($possibly_softbank), "softbank"; sub guess_carrier { my $string = shift; if ($string =~ /\p{InKDDISoftBankConflicts}/) { eval { Encode::encode("x-sjis-kddi-cp932-raw", $string, Encode::FB_CROAK) }; if ($@) { return 'softbank'; } else { return 'kddi'; } } return; }