/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.search.test.spatial;
import org.junit.Assert;
import org.junit.Test;
import org.hibernate.search.spatial.impl.Point;
/**
* Unit tests for Hibernate Search Spatial point implementation
*
* @author Nicolas Helleringer
*/
public class PointTest {
@Test
public void normalizeTest() {
Point point = Point.fromDegrees( 45, 517 );
Assert.assertEquals( 45, point.getLatitude(), 0 );
Assert.assertEquals( 157, point.getLongitude(), 0 );
Point point2 = Point.fromDegrees( 0, -185 );
Assert.assertEquals( 175, point2.getLongitude(), 0 );
Point point3 = Point.fromDegrees( 110, 0 );
Assert.assertEquals( 70, point3.getLatitude(), 0 );
Point point4 = Point.fromDegrees( -110, 0 );
Assert.assertEquals( -70, point4.getLatitude(), 0 );
Point point5 = Point.fromDegrees( 185, 0 );
Assert.assertEquals( -5, point5.getLatitude(), 0 );
Point point6 = Point.fromDegrees( 90, 180 );
Assert.assertEquals( 90, point6.getLatitude(), 0 );
Assert.assertEquals( 180, point6.getLongitude(), 0 );
Point point7 = Point.fromDegrees( -90, -180 );
Assert.assertEquals( -90, point7.getLatitude(), 0 );
Assert.assertEquals( 180, point7.getLongitude(), 0 );
}
@Test
public void computeDestinationTest() {
Point point = Point.fromDegrees( 45, 4 );
Point destination = point.computeDestination( 100, 45 );
Assert.assertEquals( 0.796432523, destination.getLatitudeRad(), 0.00001 );
Assert.assertEquals( 0.08568597, destination.getLongitudeRad(), 0.00001 );
}
@Test
public void distanceToPoint() {
Point point = Point.fromDegrees( 45, 4 );
Point point2 = Point.fromDegrees( 46, 14 );
double distance = point.getDistanceTo( point2 );
Assert.assertEquals( 786.7, distance, 0.1 );
}
}