From: Marc Tobias Metten Date: Wed, 25 Oct 2017 21:58:13 +0000 (+0200) Subject: tests for lib.php closestHouseNumber X-Git-Tag: v3.1.0~28^2 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/185a983c9dd599dcc345d76585340b2f914133cb tests for lib.php closestHouseNumber --- diff --git a/test/php/Nominatim/NominatimTest.php b/test/php/Nominatim/NominatimTest.php index cae3ebb8..f7b04bd4 100644 --- a/test/php/Nominatim/NominatimTest.php +++ b/test/php/Nominatim/NominatimTest.php @@ -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]); + } }