#!perl
use strict;
use Test::More tests => 32;
BEGIN
{
use_ok('DateTime::Util::Calc', 'moment', 'dt_from_moment');
use_ok('DateTime');
}
# generate $n random dates, and calculate moment values from each
my $now = time();
for (1..5) {
my $ref = DateTime->from_epoch(epoch => int(rand($now)),
time_zone => 'Asia/Tokyo');
# the results should be the same regardless of time zone
for my $tz qw(US/Pacific UTC) {
my $dt = $ref->clone;
$dt->set_time_zone($tz);
# For our purposes, truncate the moment to 6 fractional digits
my $moment = sprintf("%0.6f", moment($dt));
ok($moment, "Moment from DT: $dt -> $moment");
my $dt_from_moment = dt_from_moment($moment);
isa_ok($dt_from_moment, 'DateTime', "DT from moment: $moment -> $dt");
# XXX - as of 0.05, I have a discrepancy of 1 second
# for now I'll ignore it
my $diff = abs($dt->epoch - $dt_from_moment->epoch);
ok($diff <= 1, "DT diff -> $diff, expected diff <= 1");
}
}