use strict;
use warnings;
use Test::More tests => 14;
use WWW::MySociety::Gaze;
ok my $gaze = WWW::MySociety::Gaze->new, 'new';
isa_ok $gaze, 'WWW::MySociety::Gaze';
{
ok my $country = $gaze->get_country_from_ip( '192.5.6.30' ),
'got country code';
like $country, qr{^[A-Z]+$}, 'country code looks OK';
}
{
my @countries = $gaze->get_find_places_countries;
ok @countries > 30, 'got some countries';
my @nice = grep { qr{^[A-Z]+$} } @countries;
is_deeply \@nice, \@countries, 'all valid ISO codes';
}
{
my @places = $gaze->find_places(
country => 'GB',
query => 'Newcastle upon Tyne'
);
ok @places > 3, 'got some places';
like $places[0]->{Name}, qr{^Newcastle}, 'first name matches';
}
{
my $density
= $gaze->get_population_density( 54.9880556, -1.6194444 );
# Should be OK until Newcastle disappears under water or becomes
# uncomfortably crowded.
ok $density > 100 && $density < 1_000_000, 'density looks OK';
}
{
my $radius = $gaze->get_radius_containing_population(
lat => 54.9880556,
lon => -1.6194444,
number => 10_000
);
ok $radius > 10 && $radius < 1_000_000, 'radius looks OK';
}
{
my @bb = $gaze->get_country_bounding_coords( 'GB' );
ok @bb == 4, 'correct number of elements';
ok $bb[0] > $bb[1], 'latitude order correct';
ok $bb[2] > $bb[3], 'longitude order correct';
}
{
my @places = $gaze->get_places_near(
lat => 54.9880556,
lon => -1.6194444,
distance => 20,
number => 1000
);
ok @places > 10, 'got some places';
}