From: marc tobias Date: Thu, 20 Sep 2018 17:15:58 +0000 (+0200) Subject: PHP unit tests for Nominatim\ClassTypes X-Git-Tag: v3.3.0~88^2 X-Git-Url: https://git.openstreetmap.org/nominatim.git/commitdiff_plain/f0daf1137599f3ca76e87c0bbc73b7098d3069f8?ds=sidebyside PHP unit tests for Nominatim\ClassTypes --- diff --git a/test/php/Nominatim/ClassTypesTest.php b/test/php/Nominatim/ClassTypesTest.php new file mode 100644 index 00000000..8d8481f5 --- /dev/null +++ b/test/php/Nominatim/ClassTypesTest.php @@ -0,0 +1,94 @@ + 7, + 'class' => 'boundary', + 'type' => 'administrative', + 'rank_address' => 14 + ); + + $this->assertEquals('County', ClassTypes\getInfo($aPlace)['label']); + $this->assertEquals('County', ClassTypes\getFallbackInfo($aPlace)['label']); + $this->assertEquals('County', ClassTypes\getProperty($aPlace, 'label')); + + // 2) No admin level + // Eiffel Tower + // https://nominatim.openstreetmap.org/details.php?osmtype=W&osmid=5013364 + $aPlace = array( + 'class' => 'tourism', + 'type' => 'attraction', + 'rank_address' => 29 + ); + $this->assertEquals('Attraction', ClassTypes\getInfo($aPlace)['label']); + $this->assertEquals(array('simplelabel' => 'address29'), ClassTypes\getFallbackInfo($aPlace)); + $this->assertEquals('Attraction', ClassTypes\getProperty($aPlace, 'label')); + + // 3) Unknown type + // La Maison du Toutou, Paris + // https://nominatim.openstreetmap.org/details.php?osmtype=W&osmid=164011651 + $aPlace = array( + 'class' => 'shop', + 'type' => 'pet_grooming', + 'rank_address' => 29 + ); + $this->assertEquals(false, ClassTypes\getInfo($aPlace)); + $this->assertEquals(array('simplelabel' => 'address29'), ClassTypes\getFallbackInfo($aPlace)); + $this->assertEquals(false, ClassTypes\getProperty($aPlace, 'label')); + $this->assertEquals('mydefault', ClassTypes\getProperty($aPlace, 'label', 'mydefault')); + } + + public function testGetClassTypesWithImportance() + { + $aClasses = ClassTypes\getListWithImportance(); + + $this->assertGreaterThan( + 200, + count($aClasses) + ); + + $this->assertEquals( + array( + 'label' => 'Country', + 'frequency' => 0, + 'icon' => 'poi_boundary_administrative', + 'defzoom' => 6, + 'defdiameter' => 15, + 'importance' => 3 + ), + $aClasses['place:country'] + ); + } + + + public function testGetResultDiameter() + { + $aResult = array('class' => '', 'type' => ''); + $this->assertEquals( + 0.0001, + ClassTypes\getProperty($aResult, 'defdiameter', 0.0001) + ); + + $aResult = array('class' => 'place', 'type' => 'country'); + $this->assertEquals( + 15, + ClassTypes\getProperty($aResult, 'defdiameter', 0.0001) + ); + + $aResult = array('class' => 'boundary', 'type' => 'administrative', 'admin_level' => 6); + $this->assertEquals( + 0.32, + ClassTypes\getProperty($aResult, 'defdiameter', 0.0001) + ); + } +} diff --git a/test/php/Nominatim/LibTest.php b/test/php/Nominatim/LibTest.php index d2237b60..2891388d 100644 --- a/test/php/Nominatim/LibTest.php +++ b/test/php/Nominatim/LibTest.php @@ -2,54 +2,8 @@ namespace Nominatim; -require_once(CONST_BasePath.'/lib/ClassTypes.php'); - class LibTest extends \PHPUnit\Framework\TestCase { - public function testGetClassTypesWithImportance() - { - $aClasses = ClassTypes\getListWithImportance(); - - $this->assertGreaterThan( - 200, - count($aClasses) - ); - - $this->assertEquals( - array( - 'label' => 'Country', - 'frequency' => 0, - 'icon' => 'poi_boundary_administrative', - 'defzoom' => 6, - 'defdiameter' => 15, - 'importance' => 3 - ), - $aClasses['place:country'] - ); - } - - - public function testGetResultDiameter() - { - $aResult = array('class' => '', 'type' => ''); - $this->assertEquals( - 0.0001, - ClassTypes\getProperty($aResult, 'defdiameter', 0.0001) - ); - - $aResult = array('class' => 'place', 'type' => 'country'); - $this->assertEquals( - 15, - ClassTypes\getProperty($aResult, 'defdiameter', 0.0001) - ); - - $aResult = array('class' => 'boundary', 'type' => 'administrative', 'admin_level' => 6); - $this->assertEquals( - 0.32, - ClassTypes\getProperty($aResult, 'defdiameter', 0.0001) - ); - } - public function testAddQuotes() {