]> git.openstreetmap.org Git - nominatim.git/commitdiff
PHP unit tests for Nominatim\ClassTypes
authormarc tobias <mtmail@gmx.net>
Thu, 20 Sep 2018 17:15:58 +0000 (19:15 +0200)
committermarc tobias <mtmail@gmx.net>
Thu, 20 Sep 2018 17:15:58 +0000 (19:15 +0200)
test/php/Nominatim/ClassTypesTest.php [new file with mode: 0644]
test/php/Nominatim/LibTest.php

diff --git a/test/php/Nominatim/ClassTypesTest.php b/test/php/Nominatim/ClassTypesTest.php
new file mode 100644 (file)
index 0000000..8d8481f
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+
+namespace Nominatim;
+
+require_once(CONST_BasePath.'/lib/ClassTypes.php');
+
+class ClassTypesTest extends \PHPUnit\Framework\TestCase
+{
+    public function testGetInfo()
+    {
+        // 1) Admin level set
+        // city Dublin
+        // https://nominatim.openstreetmap.org/details.php?osmtype=R&osmid=1109531
+        $aPlace = array(
+                   'admin_level' => 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)
+        );
+    }
+}
index d2237b602657939b44aadc158792c66701469403..2891388d371b83976a8b50ae9dce379b916e47df 100644 (file)
@@ -2,54 +2,8 @@
 
 namespace Nominatim;
 
 
 namespace Nominatim;
 
-require_once(CONST_BasePath.'/lib/ClassTypes.php');
-
 class LibTest extends \PHPUnit\Framework\TestCase
 {
 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()
     {
 
     public function testAddQuotes()
     {