1use strict; 2BEGIN { $^W = 1 } 3 4use Test::More tests => 6; 5use DateTime; 6use DateTime::Format::Epoch; 7 8my $dt = DateTime->new( year => 1970, month => 1, day => 1 ); 9 10my $f = DateTime::Format::Epoch->new( epoch => $dt, dhms => 1, 11 skip_leap_seconds => 0 ); 12 13isa_ok($f, 'DateTime::Format::Epoch' ); 14 15ok(eq_array([$f->format_datetime($dt)], [0,0,0,0]), 16 'Epoch = 0/0:0:0'); 17 18$dt->set( hour => 1 ); 19ok(eq_array([$f->format_datetime($dt)], [0,1,0,0]), 20 'Epoch + 1hour'); 21 22$dt->set( day => 2, hour => 0 ); 23ok(eq_array([$f->format_datetime($dt)], [1,0,0,0]), 24 'Epoch + 1 day'); 25 26$dt = DateTime->new( year => 1973, month => 1, day => 2 ); 27ok(eq_array([$f->format_datetime($dt)], [365*2+366+1,0,0,2]), 28 'Leap second counted'); 29 30$dt = DateTime->new( year => 1969, month => 12, day => 22, hour => 22 ); 31ok(eq_array([$f->format_datetime($dt)], [-9, -2, 0, 0]), 32 'Epoch - 9days 2hours'); 33