]> git.openstreetmap.org Git - nominatim.git/commitdiff
adapt unit tests for new NearPoint type
authorSarah Hoffmann <lonvia@denofr.de>
Wed, 15 Mar 2017 22:58:51 +0000 (23:58 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Wed, 15 Mar 2017 22:58:51 +0000 (23:58 +0100)
test/php/Nominatim/NearPointTest.php [new file with mode: 0644]
test/php/Nominatim/NominatimTest.php

diff --git a/test/php/Nominatim/NearPointTest.php b/test/php/Nominatim/NearPointTest.php
new file mode 100644 (file)
index 0000000..4d1a5b4
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+
+namespace Nominatim;
+
+require '../../lib/NearPoint.php';
+
+class NearPointTest extends \PHPUnit_Framework_TestCase
+{
+    protected function setUp()
+    {
+    }
+
+    public function testExtractFromQuery()
+    {
+        // no coordinates expected
+        $this->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);
+        }
+    }
+}
index f8ba14c16b3f955c90a7483d00e091289af72771..a651fe40ca130102e893cc0382f3c8e9e5a16f46 100644 (file)
@@ -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