X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/5c18d6865d18ab4ff9e13acda1c9ca5cf04252c4..a8a700e16d286971c43c013b322a1fd4a339de4d:/test/php/Nominatim/NominatimTest.php diff --git a/test/php/Nominatim/NominatimTest.php b/test/php/Nominatim/NominatimTest.php index cae3ebb8..60770208 100644 --- a/test/php/Nominatim/NominatimTest.php +++ b/test/php/Nominatim/NominatimTest.php @@ -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 @@ -192,4 +192,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]); + } }