zeroclickinfo-goodies/t/Timediff.t

146 lines
4.0 KiB
Perl
Executable File

#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use DDG::Test::Goodie;
use utf8;
use Test::MockTime qw( :all );
zci answer_type => 'timediff';
zci is_cached => 0;
sub make_answer {
my ($input) = @_;
return {
data => {
title => "$input->{in1} - $input->{in2}",
record_data => {
days => $input->{'days'},
hours => $input->{'hours'},
minutes => $input->{'minutes'},
seconds => $input->{'seconds'},
},
record_keys => ['days', 'hours', 'minutes', 'seconds']
},
templates => {
group => 'list',
options => {
content => 'record',
moreAt => 0
}
}
};
}
ddg_goodie_test(
['DDG::Goodie::Timediff'],
'timediff 2016-04-11T09:00:00 2016-04-08T18:17:00' => test_zci(
"225780 seconds",
structured_answer => make_answer({
seconds => "225,780",
minutes => "3,763",
hours => "62.7166666666667",
days => "2.61319444444444",
in1 => "11 Apr 2016 09:00:00 EDT",
in2 => "08 Apr 2016 18:17:00 EDT"
})
),
'timediff 2016-04-08T20:00:00 2016-04-10T21:00:00' => test_zci(
"176400 seconds",
structured_answer => make_answer({
seconds => "176,400",
minutes => "2,940",
hours => "49",
days => "2.04166666666667",
in1 => "08 Apr 2016 20:00:00 EDT",
in2 => "10 Apr 2016 21:00:00 EDT"
})
),
'timediff 2016-04-08T20:00:00 2016-04-10T21:00:00' => test_zci(
"176400 seconds",
structured_answer => make_answer({
seconds => "176,400",
minutes => "2,940",
hours => "49",
days => "2.04166666666667",
in1 => "08 Apr 2016 20:00:00 EDT",
in2 => "10 Apr 2016 21:00:00 EDT"
})
),
'seconds between Sat, 09 Aug 2014 18:20:00 and Sun, 11 Aug 2014 01:01:08' => test_zci(
"110468 seconds",
structured_answer => make_answer({
seconds => "110,468",
minutes => "1,841.13333333333",
hours => "30.6855555555556",
days => "1.27856481481481",
in1 => "09 Aug 2014 18:20:00 EDT",
in2 => '11 Aug 2014 01:01:08 EDT'
})
),
'minutes between Sat, 13 Mar 2010 11:29:05 and Sat, 13 Mar 2010 12:29:05' => test_zci(
"3600 seconds",
structured_answer => make_answer({
seconds => "3,600",
minutes => "60",
hours => "1",
days => "0.0416666666666667",
in1 => "13 Mar 2010 11:29:05 EST",
in2 => "13 Mar 2010 12:29:05 EST"
})
),
'hours between 13 Mar 2010 11:29:05 and 13 Mar 2010 12:29:05' => test_zci(
"3600 seconds",
structured_answer => make_answer({
seconds => "3,600",
minutes => "60",
hours => "1",
days => "0.0416666666666667",
in1 => "13 Mar 2010 11:29:05 EST",
in2 => "13 Mar 2010 12:29:05 EST"
})
),
'days between 2016-05-13 and 2016-06-01' => test_zci(
"1641600 seconds",
structured_answer => make_answer({
seconds => "1,641,600",
minutes => "27,360",
hours => "456",
days => "19",
in1 => "13 May 2016 00:00:00 EDT",
in2 => "01 Jun 2016 00:00:00 EDT"
})
),
'timediff examples' => undef,
'timediff function' => undef,
);
set_fixed_time('2015-07-14T22:36:00');
ddg_goodie_test(
[qw( DDG::Goodie::Timediff)],
'days between 22nd may and 15th jul' => test_zci(
'4665600 seconds',
structured_answer => make_answer({
seconds => "4,665,600",
minutes => "77,760",
hours => "1,296",
days => "54",
in1 => "22 May 2015 00:00:00 EDT",
in2 => "15 Jul 2015 00:00:00 EDT"
}),
),
);
restore_time();
done_testing;