Data-Recursive-Encode

 view release on metacpan or  search on metacpan

t/01_simple.t  view on Meta::CPAN

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');

t/02_more.t  view on Meta::CPAN

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->('あいう'), undef],    [U('あいう'), undef], 'undef');
    is_deeply([$D->('あいう'), \*ok ],    [U('あいう'), \*ok],  'globref');
    is_deeply([$D->('あいう'), \&ok ],    [U('あいう'), \&ok],  'coderef');
    is_deeply([\\$D->('あいう') ],        [\\U('あいう')],      'ref to ref');

t/03_recursive.t  view on Meta::CPAN

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])) }

# -------------------------------------------------------------------------

my $E = sub { Data::Recursive::Encode->encode_utf8(@_) };

my $data = {
    'foo' => { key => U('あいう'), qux => 42 }
};
$data->{bar} = $data->{foo};



( run in 0.858 second using v1.01-cache-2.11-cpan-5b529ec07f3 )