From 1649191ffd8c2daded0c8c34338fd683c75964b3 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Wed, 15 Mar 2017 23:58:51 +0100 Subject: [PATCH] adapt unit tests for new NearPoint type --- test/php/Nominatim/NearPointTest.php | 68 ++++++++++++++++++++++++++++ test/php/Nominatim/NominatimTest.php | 56 ----------------------- 2 files changed, 68 insertions(+), 56 deletions(-) create mode 100644 test/php/Nominatim/NearPointTest.php diff --git a/test/php/Nominatim/NearPointTest.php b/test/php/Nominatim/NearPointTest.php new file mode 100644 index 00000000..4d1a5b43 --- /dev/null +++ b/test/php/Nominatim/NearPointTest.php @@ -0,0 +1,68 @@ +assertFalse(NearPoint::extractFromQuery('')); + $this->assertFalse(NearPoint::extractFromQuery('abc')); + $this->assertFalse(NearPoint::extractFromQuery('12 34')); + $this->assertFalse(NearPoint::extractFromQuery('200.1 89.9')); // because latitude > 180 + + // coordinates expected + $this->assertNotNull(NearPoint::extractFromQuery('0.0 -0.0')); + + $aRes = NearPoint::extractFromQuery(' abc 12.456 -78.90 def '); + $this->assertEquals($aRes['pt']->lat(), 12.456); + $this->assertEquals($aRes['pt']->lon(), -78.90); + $this->assertEquals($aRes['pt']->radius(), 0.1); + $this->assertEquals($aRes['query'], 'abc def'); + + $aRes = NearPoint::extractFromQuery(' [12.456,-78.90] '); + $this->assertEquals($aRes['pt']->lat(), 12.456); + $this->assertEquals($aRes['pt']->lon(), -78.90); + $this->assertEquals($aRes['pt']->radius(), 0.1); + $this->assertEquals($aRes['query'], ''); + + // http://en.wikipedia.org/wiki/Geographic_coordinate_conversion + // these all represent the same location + $aQueries = array( + '40 26.767 N 79 58.933 W', + '40° 26.767′ N 79° 58.933′ W', + "40° 26.767' N 79° 58.933' W", + 'N 40 26.767, W 79 58.933', + 'N 40°26.767′, W 79°58.933′', + "N 40°26.767', W 79°58.933'", + + '40 26 46 N 79 58 56 W', + '40° 26′ 46″ N 79° 58′ 56″ W', + 'N 40 26 46 W 79 58 56', + 'N 40° 26′ 46″, W 79° 58′ 56″', + 'N 40° 26\' 46", W 79° 58\' 56"', + + '40.446 -79.982', + '40.446,-79.982', + '40.446° N 79.982° W', + 'N 40.446° W 79.982°', + + '[40.446 -79.982]', + ' 40.446 , -79.982 ', + ); + + + foreach ($aQueries as $sQuery) { + $aRes = NearPoint::extractFromQuery($sQuery); + $this->assertEquals(40.446, $aRes['pt']->lat(), 'degrees decimal ' . $sQuery, 0.01); + $this->assertEquals(-79.982, $aRes['pt']->lon(), 'degrees decimal ' . $sQuery, 0.01); + } + } +} diff --git a/test/php/Nominatim/NominatimTest.php b/test/php/Nominatim/NominatimTest.php index f8ba14c1..a651fe40 100644 --- a/test/php/Nominatim/NominatimTest.php +++ b/test/php/Nominatim/NominatimTest.php @@ -66,62 +66,6 @@ class NominatimTest extends \PHPUnit_Framework_TestCase } - public function testLooksLikeLatLonPair() - { - // no coordinates expected - $this->assertNull(looksLikeLatLonPair('')); - $this->assertNull(looksLikeLatLonPair('abc')); - $this->assertNull(looksLikeLatLonPair('12 34')); - $this->assertNull(looksLikeLatLonPair('200.1 89.9')); // because latitude > 180 - - // coordinates expected - $this->assertNotNull(looksLikeLatLonPair('0.0 -0.0')); - - $this->assertEquals( - array( 'lat' => 12.456, 'lon' => -78.90, 'query' => 'abc def'), - looksLikeLatLonPair(' abc 12.456 -78.90 def ') - ); - - $this->assertEquals( - array( 'lat' => 12.456, 'lon' => -78.90, 'query' => ''), - looksLikeLatLonPair(' [12.456,-78.90] ') - ); - - // http://en.wikipedia.org/wiki/Geographic_coordinate_conversion - // these all represent the same location - $aQueries = array( - '40 26.767 N 79 58.933 W', - '40° 26.767′ N 79° 58.933′ W', - "40° 26.767' N 79° 58.933' W", - 'N 40 26.767, W 79 58.933', - 'N 40°26.767′, W 79°58.933′', - "N 40°26.767', W 79°58.933'", - - '40 26 46 N 79 58 56 W', - '40° 26′ 46″ N 79° 58′ 56″ W', - 'N 40 26 46 W 79 58 56', - 'N 40° 26′ 46″, W 79° 58′ 56″', - 'N 40° 26\' 46", W 79° 58\' 56"', - - '40.446 -79.982', - '40.446,-79.982', - '40.446° N 79.982° W', - 'N 40.446° W 79.982°', - - '[40.446 -79.982]', - ' 40.446 , -79.982 ', - ); - - - foreach ($aQueries as $sQuery) { - $aRes = looksLikeLatLonPair($sQuery); - $this->assertEquals(40.446, $aRes['lat'], 'degrees decimal ' . $sQuery, 0.01); - $this->assertEquals(-79.982, $aRes['lon'], 'degrees decimal ' . $sQuery, 0.01); - } - } - - - public function testGetWordSets() { // given an array of arrays like -- 2.39.5