34 lines
906 B
PHP
34 lines
906 B
PHP
|
<?php namespace MapGuesser\Tests\Util\Geo;
|
||
|
|
||
|
use MapGuesser\Util\Geo\Position;
|
||
|
use PHPUnit\Framework\TestCase;
|
||
|
|
||
|
final class PositionTest extends TestCase
|
||
|
{
|
||
|
public function testCanBeCreatedWithLatAndLng(): void
|
||
|
{
|
||
|
$position = new Position(45.25, 18.12);
|
||
|
|
||
|
$this->assertEquals(45.25, $position->getLat());
|
||
|
$this->assertEquals(18.12, $position->getLng());
|
||
|
}
|
||
|
|
||
|
public function testCanCalculateDistanceToAnotherPosition(): void
|
||
|
{
|
||
|
$position1 = new Position(44.12, 7.33);
|
||
|
$position2 = new Position(50.12, 15.11);
|
||
|
|
||
|
$this->assertEqualsWithDelta(888785.73, $position1->calculateDistanceTo($position2), 0.01);
|
||
|
}
|
||
|
|
||
|
public function testCanBeConvertedToArray(): void
|
||
|
{
|
||
|
$position = new Position(45.25, 18.12);
|
||
|
|
||
|
$this->assertEquals(
|
||
|
['lat' => 45.25, 'lng' => 18.12],
|
||
|
$position->toArray()
|
||
|
);
|
||
|
}
|
||
|
}
|