Blame t/altcon.t

Packit 9002b2
use strict;
Packit 9002b2
use warnings;
Packit 9002b2
Packit 9002b2
use Test::More;
Packit 9002b2
Packit 9002b2
use DateTime::Format::Builder;
Packit 9002b2
Packit 9002b2
# ------------------------------------------------------------------------
Packit 9002b2
Packit 9002b2
sub do_check {
Packit 9002b2
    my ( $parser, $date, $values ) = @_;
Packit 9002b2
    my $parsed = $parser->parse( 'DateTime::Format::Builder', $date );
Packit 9002b2
    isa_ok( $parsed => 'DateTime' );
Packit 9002b2
    is( $parsed->year()  => $values->[0], "Year is right" );
Packit 9002b2
    is( $parsed->month() => $values->[1], "Month is right" );
Packit 9002b2
    is( $parsed->day()   => $values->[2], "Day is right" );
Packit 9002b2
}
Packit 9002b2
Packit 9002b2
{
Packit 9002b2
    my $parser = DateTime::Format::Builder->create_parser(
Packit 9002b2
        {
Packit 9002b2
            #YYYY-DDD 1985-102
Packit 9002b2
            regex       => qr/^ (\d{4}) -?? (\d{3}) $/x,
Packit 9002b2
            params      => [qw( year day_of_year )],
Packit 9002b2
            constructor => [ 'DateTime', 'from_day_of_year' ],
Packit 9002b2
        },
Packit 9002b2
        {
Packit 9002b2
            regex       => qr/^ (\d{4}) foo (\d{3}) $/x,
Packit 9002b2
            params      => [qw( year day_of_year )],
Packit 9002b2
            constructor => sub {
Packit 9002b2
                my $self = shift;
Packit 9002b2
                DateTime->from_day_of_year(@_);
Packit 9002b2
            },
Packit 9002b2
        }
Packit 9002b2
    );
Packit 9002b2
Packit 9002b2
    my %dates = (
Packit 9002b2
        '1985-102' => [ 1985, 4, 12 ],
Packit 9002b2
        '2004-102' => [ 2004, 4, 11 ],    # leap year
Packit 9002b2
    );
Packit 9002b2
Packit 9002b2
    for my $date ( sort keys %dates ) {
Packit 9002b2
        my $values = $dates{$date};
Packit 9002b2
        do_check( $parser, $date, $values );
Packit 9002b2
        $date =~ s/-/foo/;
Packit 9002b2
        do_check( $parser, $date, $values );
Packit 9002b2
    }
Packit 9002b2
}
Packit 9002b2
Packit 9002b2
{
Packit 9002b2
    my $parser = DateTime::Format::Builder->create_parser(
Packit 9002b2
        {
Packit 9002b2
            regex       => qr/^ (\d+) $/x,
Packit 9002b2
            params      => [qw( epoch )],
Packit 9002b2
            constructor => [ 'DateTime', 'from_epoch' ]
Packit 9002b2
        }
Packit 9002b2
    );
Packit 9002b2
    my %epochs = (
Packit 9002b2
        1057279398 => '2003-07-04T00:43:18',
Packit 9002b2
    );
Packit 9002b2
    for my $epoch ( sort keys %epochs ) {
Packit 9002b2
        my $check = $epochs{$epoch};
Packit 9002b2
        my $dt = $parser->parse( 'DateTime::Format::Builder', $epoch );
Packit 9002b2
        isa_ok( $dt => 'DateTime' );
Packit 9002b2
        is( $dt->datetime => $check, "Epoch of $epoch to $check" );
Packit 9002b2
    }
Packit 9002b2
}
Packit 9002b2
Packit 9002b2
pass 'All done';
Packit 9002b2
Packit 9002b2
done_testing();