root/lang/perl/Encode-JP-Mobile/trunk/t/props-brutoforce.t @ 5107

Revision 5107, 1.4 kB (checked in by miyagawa, 5 years ago)

no_plan

Line 
1use strict;
2use warnings;
3use Test::More;
4use Encode;
5use Encode::JP::Mobile ':props';
6
7eval { require YAML };
8plan skip_all => $@ if $@;
9
10my $docomo_dat   = YAML::LoadFile("dat/docomo-table.yaml");
11my $docomo       = +{ map { $_->{unicode} => 1 } @$docomo_dat };
12my $softbank_dat = YAML::LoadFile("dat/softbank-table.yaml");
13my $softbank     = +{ map { $_->{unicode} => 1 } @$softbank_dat };
14my $kddi_dat     = YAML::LoadFile("dat/kddi-table.yaml");
15my $kddi_cp932   = +{ map { $_->{unicode} => 1 } @$kddi_dat };
16my $kddi_auto    = +{ map { $_->{unicode_auto} => 1 } @$kddi_dat };
17
18plan 'no_plan';
19
20test_all('docomo', InDoCoMoPictograms(), $docomo);
21test_all('softbank', InSoftBankPictograms(), $softbank);
22test_all('kddi', InKDDIPictograms(), +{ %$kddi_cp932, %$kddi_auto });
23test_all('kddi-cp932', InKDDICP932Pictograms(), $kddi_cp932);
24test_all('kddi-auto', InKDDIAutoPictograms(), $kddi_auto);
25
26sub test_all {
27    my ($name, $property, $map) = @_;
28
29    range_each($property => sub {
30        my $uni = sprintf '%X', shift;
31        ok $map->{$uni}, "$name $uni";
32    });
33}
34
35sub range_each {
36    my ($map, $code) = @_;
37
38    for my $range (split /\n/, $map) {
39        next unless $range;
40        my ($min, $max) = map { hex $_ } split /\t/, $range;
41        my $i = $min;
42        if ($max) {
43            while ($i <= $max) {
44                $code->( $i );
45                $i++;
46            }
47        } else {
48            $code->($min);
49        }
50    }
51}
52
Note: See TracBrowser for help on using the browser.