ConvertLatLon: Updating tests with new structured_answer

master
Rob Emery 2016-05-15 17:31:26 +01:00
parent 6824549aaf
commit c76b0bb7e9
1 changed files with 31 additions and 79 deletions

110
t/ConvertLatLon.t Normal file → Executable file
View File

@ -10,87 +10,51 @@ use utf8;
zci answer_type => 'convertlatlon';
zci is_cached => 1;
ddg_goodie_test(
[qw(
DDG::Goodie::ConvertLatLon
)],
#Primary example
'71° 10\' 3" in decimal' => test_zci('71.1675°',
structured_answer => {
input => ["71° 10 3″"],
operation => "Convert to decimal",
result => "71.1675°",
sub build_test
{
my ($text, $input, $operation, $answer) = @_;
return test_zci($text, structured_answer => {
data => {
title => "$answer",
subtitle => "$operation: $input",
},
templates => {
group => 'text'
}
),
});
}
ddg_goodie_test(
[qw( DDG::Goodie::ConvertLatLon )],
#Primary example
q`71° 10' 3" in decimal` => build_test('71.1675°', "71° 10 3″", "Convert to decimal", "71.1675°"),
#Secondary examples
'71 degrees 10 minutes 3 seconds east in decimal' => test_zci('71.1675° E',
structured_answer => {
input => ["71° 10 3″ E"],
operation => "Convert to decimal",
result => "71.1675° E",
}
),
'-16º 30\' 0" -68º 9\' 0" as decimal' => test_zci('-16.5° -68.15°'
,
structured_answer => {
input => ["-16° 30", "-68° 9"],
operation => "Convert to decimal",
result => "-16.5°, -68.15°",
}
),
'71 degrees 10 minutes 3 seconds east in decimal' => build_test('71.1675° E', "71° 10 3″ E", "Convert to decimal", "71.1675° E"),
q`-16º 30' 0" -68º 9' 0" as decimal` => build_test('-16.5° -68.15°', "-16° 30, -68° 9", "Convert to decimal", "-16.5°, -68.15°"),
#Latitudes and longitudes of cities, various trigger combinations
#Values from Wikipedia/GeoHack toolserver
#Sydney
'convert 33.859972º S 151.2094° E to degrees minutes seconds' => test_zci('33° 51 36″ S 151° 12 34″ E',
structured_answer => {
input => ["33.859972° S", "151.2094° E"],
operation => "Convert to DMS",
result => "33° 51′ 36″ S, 151° 12′ 34″ E",
}
),
'convert 33.859972º S 151.2094° E to degrees minutes seconds' => build_test('33° 51 36″ S 151° 12 34″ E', "33.859972° S, 151.2094° E", "Convert to DMS","33° 51 36″ S, 151° 12 34″ E"),
#Moscow
'55° 45 0″ 37° 37 0″ in decimal' => test_zci('55.75° 37.616667°',
structured_answer => {
input => ["55° 45", "37° 37"],
operation => "Convert to decimal",
result => "55.75°, 37.616667°",
}
),
'55° 45 0″ 37° 37 0″ in decimal' => build_test('55.75° 37.616667°', "55° 45, 37° 37", "Convert to decimal", "55.75°, 37.616667°"),
#Kinshasha
'kinshasha is 4.325 degrees south 15.322222 degrees east convert to dms' => test_zci('4° 19 30″ S 15° 19 20″ E',
structured_answer => {
input => ["4.325° S", "15.322222° E"],
operation => "Convert to DMS",
result => "4° 19′ 30″ S, 15° 19′ 20″ E",
}
),
'kinshasha is 4.325 degrees south 15.322222 degrees east convert to dms' => build_test('4° 19 30″ S 15° 19 20″ E', "4.325° S, 15.322222° E", "Convert to DMS", "4° 19 30″ S, 15° 19 20″ E"),
#Copenhagen
'55.676111° latitude' => test_zci('55° 40 34″',
structured_answer => {
input => ["55.676111°"],
operation => "Convert to DMS",
result => "55° 40′ 34″",
}
),
'55.676111° latitude' => build_test('55° 40 34″', "55.676111°", "Convert to DMS", "55° 40 34″"),
#Make sure "plural S" works
"68 degrees 9 minutes S in decimal form" => test_zci('68.15° S',
structured_answer => {
input => ["68° 9 S"],
operation => "Convert to decimal",
result => "68.15° S",
}
),
"68 degrees 9 minutes S in decimal form" => build_test('68.15° S', "68° 9 S", "Convert to decimal", "68.15° S"),
#Should not trigger for impossible latitudes and longitudes
'95º 4\' N as decimal' => undef,
q`95º 4' N as decimal` => undef,
'convert 293.11 degrees to dms' => undef,
#Should not trigger for impossible combinations of sign and
# cardinal direction
'-71º 12\' 51" S as a decimal latitude' => undef,
q`-71º 12' 51" S as a decimal latitude` => undef,
#Should not trigger on unrelated queries
'convert 61.01º farenheit to celcius' => undef,
@ -98,25 +62,13 @@ ddg_goodie_test(
'convert 61.125 degrees to radians' => undef,
'are there more than 100 seconds in a day' => undef,
'convert 4 minute mile to kilometers' => undef,
'attack of the 50\' 4" woman' => undef,
q`attack of the 50' 4" woman` => undef,
'is 39.75 degrees a fever' => undef,
'convert 39.75 degrees to farenheit' => undef,
#Check for to-format name
'16.5° S, 68.15° W dms' => test_zci(re(qr/./),
structured_answer => {
input => ["16.5° S", "68.15° W"],
operation => "Convert to DMS",
result => "16° 30′ S, 68° 9′ W",
}
),
'16° 30 S, 68° 9 W decimal' => test_zci(re(qr/./),
structured_answer => {
input => ["16° 30 S", "68° 9 W"],
operation => "Convert to decimal",
result => "16.5° S, 68.15° W",
}
),
'16.5° S, 68.15° W dms' => build_test("16° 30 S 68° 9 W", "16.5° S, 68.15° W", "Convert to DMS", "16° 30 S, 68° 9 W"),
'16° 30 S, 68° 9 W decimal' => build_test("16.5° S 68.15° W", "16° 30 S, 68° 9 W", "Convert to decimal", "16.5° S, 68.15° W"),
);
done_testing;