Data-Recursive-Encode
view release on metacpan or search on metacpan
t/01_simple.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Data::Recursive::Encode;
use Encode;
# utility functions
sub U($) { decode_utf8($_[0]) }
sub u($) { encode_utf8($_[0]) }
sub E($) { decode('euc-jp', $_[0]) }
sub e($) { encode('euc-jp', $_[0]) }
sub eU($) { e(U($_[0])) }
# -------------------------------------------------------------------------
subtest "decode_utf8" => sub {
my $D = sub { Data::Recursive::Encode->decode_utf8(@_) };
is_deeply([$D->('ããã')], [U('ããã')], 'scalar');
is_deeply([$D->(\('ããã'))], [\(U('ããã'))], 'scalarref');
is_deeply($D->(['ããã']), [U('ããã')], 'arrayref');
is_deeply($D->({'ããã' => 'ãã'}), {U('ããã'), U 'ãã'}, 'hashref');
{
my $code = sub { };
is_deeply(
$D->(
[
'ããã', $code,
bless( ['ãã'], 'Foo' )
]
),
[ U('ããã'), $code, bless( ['ãã'], 'Foo' ) ],
'coderef,blessed'
);
}
done_testing;
};
# -------------------------------------------------------------------------
subtest "encode_utf8" => sub {
my $E = sub { Data::Recursive::Encode->encode_utf8(@_) };
is_deeply([$E->(U 'ããã')], [('ããã')], 'scalar');
is_deeply([$E->(\(U 'ããã'))], [\(('ããã'))], 'scalarref');
is_deeply($E->([U 'ããã']), [('ããã')], 'arrayref');
is_deeply($E->({U('ããã') , U('ãã')}), {('ããã'), 'ãã'}, 'hashref');
{
my $code = sub { };
is_deeply(
$E->(
[
U('ããã'), $code,
bless( [U('ãã')], 'Foo' )
]
),
[ ('ããã'), $code, bless( [U('ãã')], 'Foo' ) ],
'coderef,blessed'
);
}
done_testing;
};
# -------------------------------------------------------------------------
subtest "decode" => sub {
my $D = sub { Data::Recursive::Encode->decode('euc-jp', @_) };
is_deeply([$D->(eU('ããã'))], [U('ããã')], 'scalar');
is_deeply([$D->(\(eU('ããã')))], [\(U('ããã'))], 'scalarref');
( run in 1.642 second using v1.01-cache-2.11-cpan-5b529ec07f3 )