/profiles/drupalrooms/modules/contrib/geophp/geoPHP/tests/tests/20120702Test.php
https://github.com/istos/DrupalRooms · PHP · 289 lines · 272 code · 10 blank · 7 comment · 117 complexity · 39bad8be998e6f8c98f059b6eeb2346e MD5 · raw file
- <?php
- require_once('../geoPHP.inc');
- require_once('PHPUnit/Autoload.php');
- class Tests_20120702 extends PHPUnit_Framework_TestCase {
- function setUp() {
- }
- function testMethods() {
- $format = 'gpx';
- $value = file_get_contents('./input/20120702.gpx');
- $geometry = geoPHP::load($value, $format);
- $methods = array(
- array('name' => 'area'),
- array('name' => 'boundary'),
- array('name' => 'getBBox'),
- array('name' => 'centroid'),
- array('name' => 'length'),
- array('name' => 'greatCircleLength', 'argument' => 6378137),
- array('name' => 'haversineLength'),
- array('name' => 'y'),
- array('name' => 'x'),
- array('name' => 'numGeometries'),
- array('name' => 'geometryN', 'argument' => '1'),
- array('name' => 'startPoint'),
- array('name' => 'endPoint'),
- array('name' => 'isRing'),
- array('name' => 'isClosed'),
- array('name' => 'numPoints'),
- array('name' => 'pointN', 'argument' => '1'),
- array('name' => 'exteriorRing'),
- array('name' => 'numInteriorRings'),
- array('name' => 'interiorRingN', 'argument' => '1'),
- array('name' => 'dimension'),
- array('name' => 'geometryType'),
- array('name' => 'SRID'),
- array('name' => 'setSRID', 'argument' => '4326'),
- );
- foreach($methods as $method) {
- $argument = NULL;
- $method_name = $method['name'];
- if (isset($method['argument'])) {
- $argument = $method['argument'];
- }
- $this->_methods_tester($geometry, $method_name, $argument);
- }
- }
- function _methods_tester($geometry, $method_name, $argument) {
- if (!method_exists($geometry, $method_name)) {
- $this->fail("Method ".$method_name.'() doesn\'t exists.');
- return;
- }
- switch ($method_name) {
- case 'y':
- case 'x':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'geometryN':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'startPoint':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- //TODO: Add a method startPoint() to MultiLineString.
- //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'endPoint':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- //TODO: Add a method endPoint() to MultiLineString.
- //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'isRing':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'isClosed':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'pointN':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- //TODO: Add a method pointN() to MultiLineString.
- //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'exteriorRing':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'numInteriorRings':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'interiorRingN':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'setSRID':
- //TODO: The method setSRID() should return TRUE.
- break;
- case 'SRID':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'getBBox':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'centroid':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'length':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertEquals($geometry->$method_name($argument), (float) '0.11624637315233', 'Failed on ' . $method_name);
- }
- break;
- case 'numGeometries':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'numPoints':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'dimension':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'boundary':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- break;
- case 'greatCircleLength':
- if ($geometry->geometryType() == 'Point') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'LineString') {
- $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- if ($geometry->geometryType() == 'MultiLineString') {
- $this->assertNotEquals($geometry->$method_name($argument), '9500.9359867418', 'Failed on ' . $method_name);
- }
- break;
- case 'haversineLength':
- case 'area':
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- break;
- case 'geometryType':
- $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
- break;
- default:
- $this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
- }
- }
- }