]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/php/Nominatim/NearPointTest.php
NearPoint::extractFromQuery - greedy-match optional quote sign
[nominatim.git] / test / php / Nominatim / NearPointTest.php
index 4d1a5b43d23a9653893efa77371ed6617aab991b..bee7d3eb3e11d368c1512e1970a7ce1f6cba47eb 100644 (file)
@@ -6,6 +6,8 @@ require '../../lib/NearPoint.php';
 
 class NearPointTest extends \PHPUnit_Framework_TestCase
 {
+
+
     protected function setUp()
     {
     }
@@ -25,7 +27,7 @@ class NearPointTest extends \PHPUnit_Framework_TestCase
         $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');
+        $this->assertEquals($aRes['query'], 'abc def');
 
         $aRes = NearPoint::extractFromQuery(' [12.456,-78.90] ');
         $this->assertEquals($aRes['pt']->lat(), 12.456);
@@ -33,6 +35,10 @@ class NearPointTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($aRes['pt']->radius(), 0.1);
         $this->assertEquals($aRes['query'], '');
 
+        $aRes = NearPoint::extractFromQuery(' -12.456,-78.90 ');
+        $this->assertEquals($aRes['pt']->lat(), -12.456);
+        $this->assertEquals($aRes['pt']->lon(), -78.90);
+
         // http://en.wikipedia.org/wiki/Geographic_coordinate_conversion
         // these all represent the same location
         $aQueries = array(
@@ -63,6 +69,27 @@ class NearPointTest extends \PHPUnit_Framework_TestCase
             $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);
+            $this->assertEquals('', $aRes['query']);
         }
     }
+
+    public function testWithinSQL()
+    {
+        $np = new NearPoint(0.1, 23, 1);
+
+        $this->assertEquals(
+            'ST_DWithin(foo, ST_SetSRID(ST_Point(23,0.1),4326), 1.000000)',
+            $np->withinSQL('foo')
+        );
+    }
+
+    public function testDistanceSQL()
+    {
+        $np = new NearPoint(0.1, 23, 1);
+
+        $this->assertEquals(
+            'ST_Distance(ST_SetSRID(ST_Point(23,0.1),4326), foo)',
+            $np->distanceSQL('foo')
+        );
+    }
 }