Chart-GGPlot

 view release on metacpan or  search on metacpan

t/06-util_scales.t  view on Meta::CPAN

                ),
                '2019-01-01',
                '2019-01-15'
            ]
        ),
        'Util::Scales::seq_dt'
    );

    my $pretty_dt_rslt = Chart::GGPlot::Util::Scales::pretty_dt(
        PDL::DateTime->new_from_datetime( [qw(2008-01-01 2009-01-01)] ) );
    DOES_ok($pretty_dt_rslt, [qw(PDL::DateTime PDL::Role::HasNames)]);
    pdl_is(
        PDL::DateTime->new($pretty_dt_rslt->unpdl),
        PDL::DateTime->new_sequence( '2008-01-01', 5, 'quarter' ),
        'pretty_dt'
    );
};

subtest pretty_breaks => sub {
    my $f_default = pretty_breaks();

    pdl_is(
        $f_default->( pdl( 1 .. 10 ) ),
        pdl( 0 .. 5 ) * 2,
        'pretty_breaks()->(pdl(1..10))'
    );
    pdl_is(
        $f_default->( pdl( 1 .. 100 ) ),
        pdl( 0 .. 5 ) * 20,
        'pretty_breaks()->(pdl(1..100))'
    );

    my $pretty_dt_rslt1 = $f_default->(
            PDL::DateTime->new_from_datetime( [qw(2008-01-01 2009-01-01)] )
        );
    DOES_ok($pretty_dt_rslt1, [qw(PDL::DateTime PDL::Role::HasNames)]);
    pdl_is(
        PDL::DateTime->new($pretty_dt_rslt1->unpdl),
        PDL::DateTime->new_sequence( '2008-01-01', 5, 'quarter' ),
'pretty_breaks()->(PDL::DateTime->new_from_datetime( [qw(2008-01-01 2009-01-01)] )'
    );
    my $pretty_dt_rslt2 = $f_default->(
            PDL::DateTime->new_from_datetime( [qw(2008-01-01 2090-01-01)] )
        );
    pdl_is(
        PDL::DateTime->new($pretty_dt_rslt2->unpdl),
        PDL::DateTime->new_sequence( '2000-01-01', 6, 'year', 20 ),
'pretty_breaks()->(PDL::DateTime->new_from_datetime( [qw(2008-01-01 2090-01-01)] )'
    );
};

subtest format => sub {
    no warnings 'qw';

    pdl_is( number( pdl( 1000, 2000 )),
        PDL::SV->new( ['1 000', '2 000'] ), "number()" );

    pdl_is( comma( pdl( 1000, 2000 )),
        PDL::SV->new( [qw(1,000 2,000)] ), "comma()" );

    pdl_is( percent( pdl( 0 .. 5 ) / 5 ),
        PDL::SV->new( [qw(0% 20% 40% 60% 80% 100%)] ), "percent()" );

    pdl_is( dollar( pdl( 0, 1 )),
        PDL::SV->new( [qw($0 $1)] ), "dollar()" );
    pdl_is( dollar( pdl( 1000, 2000 )),
        PDL::SV->new( [qw($1,000 $2,000)] ), "dollar()" );
    pdl_is( dollar( pdl( 0, 1.01, -2.1), negative_parens => true),
        PDL::SV->new( [qw($0.00 $1.01 ($2.10))] ), "dollar()" );
};

# Util::_Labeling

# this is from in R `labeling` package's doc
pdl_is(
    labeling_extended( 8.1, 14.1, 4 ),
    pdl( [ 8, 10, 12, 14 ] ),
    'labeling_extended()'
);

done_testing();



( run in 1.686 second using v1.01-cache-2.11-cpan-99c4e6809bf )