2013-01-26 00:10:53 -08:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
use Test::More;
|
2016-05-16 06:07:57 -07:00
|
|
|
use Test::Deep;
|
2013-01-26 00:10:53 -08:00
|
|
|
use DDG::Test::Goodie;
|
|
|
|
|
|
|
|
zci answer_type => 'date_conversion';
|
|
|
|
zci is_cached => 1;
|
|
|
|
|
2015-03-26 08:53:09 -07:00
|
|
|
my %eras = (
|
|
|
|
'Meiji' => 'Meiji_period',
|
|
|
|
'Taisho' => 'Taisho_period',
|
|
|
|
'Taishou' => 'Taisho_period',
|
|
|
|
'Showa' => 'Showa_period',
|
|
|
|
'Shouwa' => 'Showa_period',
|
|
|
|
'Heisei' => 'Heisei_period',
|
|
|
|
'Juche' => 'North_Korean_calendar',
|
|
|
|
'Minguo' => 'Minguo_calendar',
|
2016-04-23 11:18:08 -07:00
|
|
|
'Discordian' => 'Discordian_calendar',
|
|
|
|
'Suriyakhati' => 'Thai_solar_calendar'
|
2015-03-26 08:53:09 -07:00
|
|
|
);
|
|
|
|
|
2013-01-26 00:10:53 -08:00
|
|
|
ddg_goodie_test(
|
2015-03-25 15:04:41 -07:00
|
|
|
[qw( DDG::Goodie::AltCalendars )],
|
|
|
|
'heisei 25' => test_zci(
|
2016-04-23 11:18:08 -07:00
|
|
|
'Heisei 25 is equivalent to 2013 AD in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Heisei', '25', '2013', 'AD')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
|
|
|
'shouwa 39' => test_zci(
|
2016-04-23 11:18:08 -07:00
|
|
|
'Shouwa 39 is equivalent to 1964 AD in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Shouwa', '39', '1964', 'AD')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
|
|
|
'taisho 11' => test_zci(
|
2016-04-23 11:18:08 -07:00
|
|
|
'Taisho 11 is equivalent to 1922 AD in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Taisho', '11', '1922', 'AD')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
|
|
|
'meiji 1' => test_zci(
|
2016-04-23 11:18:08 -07:00
|
|
|
'Meiji 1 is equivalent to 1868 AD in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Meiji', '1', '1868', 'AD')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
|
|
|
'minguo 50' => test_zci(
|
2016-04-23 11:18:08 -07:00
|
|
|
'Minguo 50 is equivalent to 1961 AD in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Minguo', '50', '1961', 'AD')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
|
|
|
'juche 07' => test_zci(
|
2016-04-23 11:18:08 -07:00
|
|
|
'Juche 07 is equivalent to 1918 AD in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Juche', '07', '1918', 'AD')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
|
|
|
'heisei 24' => test_zci(
|
2016-04-23 11:18:08 -07:00
|
|
|
'Heisei 24 is equivalent to 2012 AD in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Heisei', '24', '2012', 'AD')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
2016-04-23 11:18:08 -07:00
|
|
|
'suriyakhati 543' => test_zci(
|
|
|
|
'Suriyakhati 543 is equivalent to 0 BC in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Suriyakhati', '543', '0', 'BC')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
2016-04-23 11:18:08 -07:00
|
|
|
'suriyakhati 43' => test_zci(
|
|
|
|
'Suriyakhati 43 is equivalent to 500 BC in the Gregorian Calendar',
|
|
|
|
make_structured_answer('Suriyakhati', '43', '500', 'BC')
|
2015-03-25 15:04:41 -07:00
|
|
|
),
|
2016-05-26 17:01:49 -07:00
|
|
|
'was Heisei 12 was a leap year' => undef,
|
|
|
|
'it\'s heisei 25 now' => undef,
|
|
|
|
'January 1st Meiji 33' => undef,
|
|
|
|
'when was Discordian 2000' => undef,
|
|
|
|
'meiji 2 45645' => undef,
|
2016-05-26 16:51:21 -07:00
|
|
|
'bengali calendar 423' => undef
|
2013-01-26 00:10:53 -08:00
|
|
|
);
|
|
|
|
|
2015-03-26 08:53:09 -07:00
|
|
|
sub make_structured_answer {
|
2016-04-23 11:18:08 -07:00
|
|
|
my ($era_name, $era_year, $gregorian_year, $era) = @_;
|
2015-03-26 08:53:09 -07:00
|
|
|
|
|
|
|
return structured_answer => {
|
|
|
|
data => {
|
2016-04-23 11:18:08 -07:00
|
|
|
title => "$gregorian_year $era",
|
2016-04-17 08:50:39 -07:00
|
|
|
subtitle => "$era_name Year $era_year"
|
2015-03-26 08:53:09 -07:00
|
|
|
},
|
|
|
|
meta => {
|
|
|
|
sourceName => "Wikipedia",
|
|
|
|
sourceUrl => "https://en.wikipedia.org/wiki/$eras{$era_name}"
|
|
|
|
},
|
|
|
|
templates => {
|
|
|
|
group => 'info',
|
|
|
|
options => {
|
|
|
|
moreAt => 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2016-05-16 06:18:04 -07:00
|
|
|
done_testing;
|