2012-04-21 14:34:10 -07:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
use Test::More;
|
2016-05-16 06:07:57 -07:00
|
|
|
use Test::Deep;
|
2012-04-21 14:34:10 -07:00
|
|
|
use DDG::Test::Goodie;
|
2015-07-15 06:15:26 -07:00
|
|
|
use Test::MockTime qw( :all );
|
2012-04-21 14:34:10 -07:00
|
|
|
|
|
|
|
zci answer_type => 'days_between';
|
2014-10-07 03:54:37 -07:00
|
|
|
zci is_cached => 1;
|
2012-04-21 14:34:10 -07:00
|
|
|
|
2016-05-21 17:05:12 -07:00
|
|
|
sub build_structured_answer{
|
|
|
|
my($startDate, $endDate, $daysBetween, $inclusive) = @_;
|
|
|
|
return "There are $daysBetween days between $startDate and $endDate $inclusive.",
|
|
|
|
structured_answer => {
|
|
|
|
data => {
|
|
|
|
title => $daysBetween,
|
|
|
|
subtitle => "Days between $inclusive $startDate - $endDate"
|
|
|
|
},
|
|
|
|
templates => {
|
|
|
|
group => "text"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
sub build_test{ test_zci(build_structured_answer(@_))}
|
2015-07-15 06:15:26 -07:00
|
|
|
|
2016-05-21 17:05:12 -07:00
|
|
|
set_fixed_time('2016-07-14T22:36:00');
|
|
|
|
|
|
|
|
my $test_inclusive = ", inclusive";
|
2015-07-15 06:15:26 -07:00
|
|
|
|
|
|
|
ddg_goodie_test(
|
|
|
|
[qw( DDG::Goodie::DaysBetween)],
|
2016-05-23 12:54:22 -07:00
|
|
|
'days between today and tomorrow' => build_test('14 Jul 2016', '15 Jul 2016', 1, ''),
|
2016-05-21 17:05:12 -07:00
|
|
|
'days between jan 1 and jan 15 inclusive' => build_test('01 Jan 2016', '15 Jan 2016', 15, $test_inclusive),
|
|
|
|
'days between jan 1 and 15th feb' => build_test('01 Jan 2016', '15 Feb 2016', 45, ''),
|
|
|
|
'how many days between feb 2 and feb 17' => build_test('02 Feb 2016', '17 Feb 2016', 15, ''),
|
2016-05-23 12:54:22 -07:00
|
|
|
'days between 2000-01-01 2001-01-01' => build_test('01 Jan 2000', '01 Jan 2001', 366, '' ),
|
|
|
|
'days between 2000-01-01 and 2001-01-01 inclusive' => build_test('01 Jan 2000', '01 Jan 2001',367, $test_inclusive),
|
|
|
|
'daysbetween 2005-03-4 and 2020-11-8' => build_test('04 Mar 2005', '08 Nov 2020', 5728, ''),
|
|
|
|
'days_between 2005-3-14 and 2003-1-2' => build_test('02 Jan 2003', '14 Mar 2005', 802, ''),
|
|
|
|
'days_between 2005-3-14 and 2003-1-2 inclusive' => build_test('02 Jan 2003', '14 Mar 2005', 803, $test_inclusive),
|
|
|
|
'days between 2001-01-31 2001-01-31' => build_test('31 Jan 2001', '31 Jan 2001', 0, ''),
|
|
|
|
'days between 2001-01-31 2001-01-31 inclusive' => build_test('31 Jan 2001', '31 Jan 2001', 1, $test_inclusive),
|
2016-05-21 17:05:12 -07:00
|
|
|
'days between jan 1 2012 and jan 1 123456' => undef
|
2012-04-21 14:34:10 -07:00
|
|
|
);
|
|
|
|
|
2015-07-15 06:15:26 -07:00
|
|
|
restore_time();
|
2016-05-16 06:18:04 -07:00
|
|
|
done_testing;
|