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
|
|
|
|
|
|
|
ddg_goodie_test(
|
2014-10-07 03:54:37 -07:00
|
|
|
[qw( DDG::Goodie::DaysBetween)],
|
|
|
|
'days between 01/01/2000 01/01/2001' => test_zci(
|
|
|
|
'There are 366 days between 01 Jan 2000 and 01 Jan 2001.',
|
|
|
|
structured_answer => {
|
|
|
|
input => ['01 Jan 2000', '01 Jan 2001'],
|
2015-01-09 00:46:54 -08:00
|
|
|
operation => 'Days between',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 366
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days between 1/1/2000 and 1/1/2001 inclusive' => test_zci(
|
|
|
|
'There are 367 days between 01 Jan 2000 and 01 Jan 2001, inclusive.',
|
|
|
|
structured_answer => {
|
|
|
|
input => ['01 Jan 2000', '01 Jan 2001'],
|
2015-01-09 06:18:15 -08:00
|
|
|
operation => 'Days between, inclusive',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 367
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'daysbetween 03/4/2005 and 11/8/2020' => test_zci(
|
|
|
|
'There are 5728 days between 04 Mar 2005 and 08 Nov 2020.',
|
|
|
|
structured_answer => {
|
|
|
|
input => ['04 Mar 2005', '08 Nov 2020'],
|
2015-01-09 00:46:54 -08:00
|
|
|
operation => 'Days between',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 5728
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days_between 3/14/2005 and 1/2/2003' => test_zci(
|
|
|
|
'There are 802 days between 02 Jan 2003 and 14 Mar 2005.',
|
|
|
|
structured_answer => {
|
|
|
|
input => ['02 Jan 2003', '14 Mar 2005'],
|
2015-01-09 00:46:54 -08:00
|
|
|
operation => 'Days between',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 802
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days between 01/31/2000 01/31/2001' => test_zci(
|
|
|
|
'There are 366 days between 31 Jan 2000 and 31 Jan 2001.',
|
|
|
|
structured_answer => {
|
|
|
|
input => ['31 Jan 2000', '31 Jan 2001'],
|
2015-01-09 00:46:54 -08:00
|
|
|
operation => 'Days between',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 366
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days between 01/31/2000 01/31/2001 inclusive' => test_zci(
|
|
|
|
'There are 367 days between 31 Jan 2000 and 31 Jan 2001, inclusive.',
|
|
|
|
structured_answer => {
|
|
|
|
input => ['31 Jan 2000', '31 Jan 2001'],
|
2015-01-09 06:18:15 -08:00
|
|
|
operation => 'Days between, inclusive',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 367
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days between January 31st, 2000 and 31-Jan-2001 inclusive' => test_zci(
|
|
|
|
'There are 367 days between 31 Jan 2000 and 31 Jan 2001, inclusive.',
|
|
|
|
structured_answer => {
|
|
|
|
input => ['31 Jan 2000', '31 Jan 2001'],
|
2015-01-09 06:18:15 -08:00
|
|
|
operation => 'Days between, inclusive',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 367
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days between jan 1 2012 and jan 1 1234' => test_zci(
|
|
|
|
"There are 284158 days between 01 Jan 1234 and 01 Jan 2012.",
|
|
|
|
structured_answer => {
|
|
|
|
input => ['01 Jan 1234', '01 Jan 2012'],
|
2015-01-09 00:46:54 -08:00
|
|
|
operation => 'Days between',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 284158
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days between jan 1 and jan 15 inclusive' => test_zci(
|
2016-05-16 06:07:57 -07:00
|
|
|
re(qr/^There are 15 days between.+inclusive\.$/),
|
2014-10-07 03:54:37 -07:00
|
|
|
structured_answer => {
|
2016-05-16 06:07:57 -07:00
|
|
|
input => ignore(),
|
2015-01-09 06:18:15 -08:00
|
|
|
operation => 'Days between, inclusive',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 15
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days between jan 1 and 15th feb' => test_zci(
|
2016-05-16 06:07:57 -07:00
|
|
|
re(qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/),
|
2014-10-07 03:54:37 -07:00
|
|
|
structured_answer => {
|
2016-05-16 06:07:57 -07:00
|
|
|
input => ignore(),
|
2015-01-09 00:46:54 -08:00
|
|
|
operation => 'Days between',
|
2014-10-07 03:54:37 -07:00
|
|
|
result => 45
|
|
|
|
},
|
2015-07-04 08:44:55 -07:00
|
|
|
),
|
|
|
|
'number of days between jan 1 and 15th feb' => test_zci(
|
2016-05-16 06:07:57 -07:00
|
|
|
re(qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/),
|
2015-07-04 08:44:55 -07:00
|
|
|
structured_answer => {
|
2016-05-16 06:07:57 -07:00
|
|
|
input => ignore(),
|
2015-07-04 08:44:55 -07:00
|
|
|
operation => 'Days between',
|
|
|
|
result => 45
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'number of days from jan 1 and 15th feb' => test_zci(
|
2016-05-16 06:07:57 -07:00
|
|
|
re(qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/),
|
2015-07-04 08:44:55 -07:00
|
|
|
structured_answer => {
|
2016-05-16 06:07:57 -07:00
|
|
|
input => ignore(),
|
2015-07-04 08:44:55 -07:00
|
|
|
operation => 'Days between',
|
|
|
|
result => 45
|
|
|
|
},
|
|
|
|
),
|
|
|
|
'days from jan 1 and 15th feb' => test_zci(
|
2016-05-16 06:07:57 -07:00
|
|
|
re(qr/^There are 45 days between.+and 15 Feb [0-9]{4}\.$/),
|
2015-07-04 08:44:55 -07:00
|
|
|
structured_answer => {
|
2016-05-16 06:07:57 -07:00
|
|
|
input => ignore(),
|
2015-07-04 08:44:55 -07:00
|
|
|
operation => 'Days between',
|
|
|
|
result => 45
|
|
|
|
},
|
2014-10-07 03:54:37 -07:00
|
|
|
),
|
2015-07-11 19:20:24 -07:00
|
|
|
'days between today and tomorrow' => test_zci(
|
2016-05-16 06:07:57 -07:00
|
|
|
re(qr/^There are 1 days between.+ and.+\.$/),
|
2015-07-11 19:20:24 -07:00
|
|
|
structured_answer => {
|
2016-05-16 06:07:57 -07:00
|
|
|
input => ignore(),
|
2015-07-11 19:20:24 -07:00
|
|
|
operation => 'Days between',
|
|
|
|
result => 1
|
|
|
|
},
|
|
|
|
),
|
2015-09-18 15:32:32 -07:00
|
|
|
'how many days between feb 2 and feb 17' => test_zci(
|
2016-05-16 06:07:57 -07:00
|
|
|
re(qr/^There are 15 days between.+ and.+\.$/),
|
2015-09-18 15:32:32 -07:00
|
|
|
structured_answer => {
|
2016-05-16 06:07:57 -07:00
|
|
|
input => ignore(),
|
2015-09-18 15:32:32 -07:00
|
|
|
operation => 'Days between',
|
|
|
|
result => 15
|
|
|
|
},
|
|
|
|
),
|
2015-07-15 06:15:26 -07:00
|
|
|
'days between jan 1 2012 and jan 1 123456' => undef,
|
|
|
|
);
|
|
|
|
|
|
|
|
set_fixed_time('2015-07-14T22:36:00');
|
|
|
|
|
|
|
|
ddg_goodie_test(
|
|
|
|
[qw( DDG::Goodie::DaysBetween)],
|
|
|
|
'days between 22nd may and today' => test_zci(
|
|
|
|
'There are 53 days between 22 May 2015 and 14 Jul 2015.',
|
2015-07-12 06:54:27 -07:00
|
|
|
structured_answer => {
|
2015-07-15 06:15:26 -07:00
|
|
|
input => ['22 May 2015', '14 Jul 2015'],
|
2015-07-12 06:54:27 -07:00
|
|
|
operation => 'Days between',
|
2015-07-15 06:15:26 -07:00
|
|
|
result => 53
|
2015-07-12 06:54:27 -07:00
|
|
|
},
|
|
|
|
),
|
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;
|