]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/php/Nominatim/NominatimTest.php
parsing coordinates allows second with floats
[nominatim.git] / test / php / Nominatim / NominatimTest.php
index cae3ebb8922aed337871775fa22a54877574a5ea..ed738c3773046a1739b138273131ad67c3ac76c3 100644 (file)
@@ -24,9 +24,9 @@ class NominatimTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals(
             array(
-             'label' => "Country",
+             'label' => 'Country',
              'frequency' => 0,
-             'icon' => "poi_boundary_administrative",
+             'icon' => 'poi_boundary_administrative',
              'defzoom' => 6,
              'defdiameter' => 15,
              'importance' => 3
@@ -171,6 +171,8 @@ class NominatimTest extends \PHPUnit_Framework_TestCase
  
                      '40 26 46 N 79 58 56 W',
                      '40° 26′ 46″ N 79° 58′ 56″ W',
+                     '40° 26′ 46.00″ N 79° 58′ 56.00″ 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"',
@@ -192,4 +194,33 @@ class NominatimTest extends \PHPUnit_Framework_TestCase
             $this->assertEquals($sQuery, $aRes[0]);
         }
     }
+
+    private function closestHouseNumberEvenOddOther($startnumber, $endnumber, $fraction, $aExpected)
+    {
+        foreach (['even', 'odd', 'other'] as $itype) {
+            $this->assertEquals(
+                $aExpected[$itype],
+                closestHouseNumber([
+                                    'startnumber' => $startnumber,
+                                    'endnumber' => $endnumber,
+                                    'fraction' => $fraction,
+                                    'interpolationtype' => $itype
+                                   ]),
+                "$startnumber => $endnumber, $fraction, $itype"
+            );
+        }
+    }
+
+    public function testClosestHouseNumber()
+    {
+        $this->closestHouseNumberEvenOddOther(50, 100, 0.5, ['even' => 76, 'odd' => 75, 'other' => 75]);
+        // upper bound
+        $this->closestHouseNumberEvenOddOther(50, 100, 1.5, ['even' => 100, 'odd' => 100, 'other' => 100]);
+        // lower bound
+        $this->closestHouseNumberEvenOddOther(50, 100, -0.5, ['even' => 50, 'odd' => 50, 'other' => 50]);
+        // fraction 0
+        $this->closestHouseNumberEvenOddOther(50, 100, 0, ['even' => 50, 'odd' => 51, 'other' => 50]);
+        // start == end
+        $this->closestHouseNumberEvenOddOther(50, 50, 0.5, ['even' => 50, 'odd' => 50, 'other' => 50]);
+    }
 }