diff options
Diffstat (limited to 't')
-rwxr-xr-x | t/Page.t | 27 | ||||
-rw-r--r-- | t/utils.t | 41 |
2 files changed, 58 insertions, 10 deletions
@@ -38,17 +38,24 @@ sub set_lang($) { sub test_geocode_string() { my %params = (); - my $q = new MockQuery('nosite', \%params); - - # geocode a straightforward string, expect success - my ($easting, $northing, $error) = FixMyStreet::Geocode::string('Buckingham Palace', $q); - ok($easting == 529068, 'example easting generated') or diag("Got $easting"); - ok($northing == 179684, 'example northing generated') or diag("Got $northing"); - ok(! defined($error), 'should not generate error for simple example') or diag("Got $error"); - # expect a failure message for Northern Ireland - ($easting, $northing, $error) = FixMyStreet::Geocode::string('Falls Road, Belfast', $q); - ok($error eq "We do not cover Northern Ireland, I'm afraid, as our licence doesn't include any maps for the region.", 'error message produced for NI location') or diag("Got $error"); + my $q = new MockQuery( 'nosite', \%params ); + + # geocode a straightforward string, expect success + my ( $latitude, $longitude, $error ) = + FixMyStreet::Geocode::string( 'Buckingham Palace', $q ); + is( $latitude, 51.5013639, 'example easting generated' ); + is( $longitude, -0.1418898, 'example northing generated' ); + is( $error, undef, 'should not generate error for simple example' ); + # expect a failure message for Northern Ireland + ( $latitude, $longitude, $error ) = + FixMyStreet::Geocode::string( 'Falls Road, Belfast', $q ); + is( + $error, + "We do not cover Northern Ireland, I'm afraid, as our licence doesn't " + . "include any maps for the region.", + 'error message produced for NI location' + ); } sub test_header() { diff --git a/t/utils.t b/t/utils.t new file mode 100644 index 000000000..385c482ed --- /dev/null +++ b/t/utils.t @@ -0,0 +1,41 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use Test::More tests => 9; + +use FindBin; +use lib "$FindBin::Bin/../perllib"; +use lib "$FindBin::Bin/../commonlib/perllib"; + +use Utils; + +my @truncate_tests = ( + [ '1.1234567890123', '1.123457', "truncate down" ], + [ '1.123456', '1.123456', "leave untouched" ], + [ '1.12', '1.12', "don't extend" ], + [ '1.100000001', '1.1', "knock off trailing zeros" ], + [ '1.000000001', '1', "knock off trailing zeros" ], + [ '0.0', '0', "knock off trailing zeros" ], + [ '+123', '123', "drop plus sign" ], + [ '-123', '-123', "keep minus sign" ], +); + +foreach my $test (@truncate_tests) { + my ( $in, $out, $msg ) = @$test; + is Utils::truncate_coordinate($in), $out, $msg; +} + +my @convert_en_to_latlon_tests = ( + + # e n lat lon + [ 1234, 4567, 49.808509, -7.544784 ], +); + +foreach my $test (@convert_en_to_latlon_tests) { + my ( $e, $n, $lat, $lon ) = @$test; + is_deeply # + [ Utils::convert_en_to_latlon_truncated( $e, $n ) ], # + [ $lat, $lon ], # + "convert ($e,$n) to ($lat,$lon)"; +} |