moved bIncludePolygonAsPoints related logic into lib.php, added tests

This commit is contained in:
Marc Tobias Metten
2016-02-28 17:08:20 +01:00
parent 7f5fe8c877
commit f6129ebfee

View File

@@ -143,6 +143,68 @@ class NominatimTest extends \PHPUnit_Framework_TestCase
count( getWordSets(array_fill( 0, 18, 'a'),0) )
);
}
public function test_geometryText2Points()
{
$fRadius = 1;
// invalid value
$this->assertEquals(
NULL,
geometryText2Points('', $fRadius)
);
// POINT
$aPoints = geometryText2Points('POINT(10 20)', $fRadius);
$this->assertEquals(
101,
count($aPoints)
);
$this->assertEquals(
array(
['', 10, 21],
['', 10.062790519529, 20.998026728428],
['', 10.125333233564, 20.992114701314]
),
array_splice($aPoints, 0,3)
);
// POLYGON
$this->assertEquals(
array(
['30 10', '30', '10'],
['40 40', '40', '40'],
['20 40', '20', '40'],
['10 20', '10', '20'],
['30 10', '30', '10']
),
geometryText2Points('POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))', $fRadius)
);
// MULTIPOLYGON
// only the first polygon is used
$this->assertEquals(
array(
['30 20', '30', '20'],
['45 40', '45', '40'],
['10 40', '10', '40'],
['30 20', '30', '20'],
// ['15 5' , '15', '5' ],
// ['45 10', '45', '10'],
// ['10 20', '10', '20'],
// ['5 10' , '5' , '10'],
// ['15 5' , '15', '5' ]
),
geometryText2Points('MULTIPOLYGON(((30 20, 45 40, 10 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))', $fRadius)
);
}