summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2016-01-18 12:41:20 +0100
committerTobrun <tobrun@mapbox.com>2016-01-18 13:31:37 +0100
commit78bedff8f9238c69e29c8c1ccbc6b1136b7786b3 (patch)
treeb9fe94275c8e691cdd61fb82f685f46a8cb8a1b1 /platform
parent0ebf5fcaaee7ec90c81ed79b1ecd9843242c35c0 (diff)
downloadqtlocation-mapboxgl-78bedff8f9238c69e29c8c1ccbc6b1136b7786b3.tar.gz
[android] #3556 - Added test to trigger NaN value on same point, updated LatLng model to handle calls for distance calls of same point
Diffstat (limited to 'platform')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java5
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java27
2 files changed, 22 insertions, 10 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java
index c340b09e05..f1d05542d6 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/geometry/LatLng.java
@@ -129,7 +129,6 @@ public class LatLng implements ILatLng, Parcelable, Serializable {
LatLng latLng = (LatLng) o;
return Double.compare(latLng.altitude, altitude) == 0 && Double.compare(latLng.latitude, latitude) == 0 && Double.compare(latLng.longitude, longitude) == 0;
-
}
@Override
@@ -168,6 +167,10 @@ public class LatLng implements ILatLng, Parcelable, Serializable {
* @return distance in meters
*/
public double distanceTo(LatLng other) {
+ if(latitude == other.latitude && longitude == other.longitude){
+ // return 0.0 to avoid a NaN
+ return 0.0;
+ }
final double a1 = MathConstants.DEG2RAD * this.latitude;
final double a2 = MathConstants.DEG2RAD * this.longitude;
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java
index dd075f327f..5b24f32b6c 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/LatLngTest.java
@@ -6,6 +6,7 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -43,6 +44,23 @@ public class LatLngTest {
assertEquals("altitude default value", latLng2.getAltitude(), altitude, DELTA);
}
+ @Test
+ public void testDistanceTo() {
+ LatLng latLng1 = new LatLng(0.0, 0.0);
+ LatLng latLng2 = new LatLng(1.0, 1.0);
+ assertEquals("distances should match",
+ latLng1.distanceTo(latLng2),
+ 157425.53710839353, DELTA);
+ }
+
+ @Test
+ public void testDistanceToSamePoint() {
+ LatLng latLng1 = new LatLng(40.71199035644531, -74.0081);
+ LatLng latLng2 = new LatLng(40.71199035644531, -74.0081);
+ double distance = latLng1.distanceTo(latLng2);
+ assertEquals("distance should match", 0.0, distance, DELTA);
+ }
+
/*
* A sample test where Mockito is necessary
*/
@@ -86,13 +104,4 @@ public class LatLngTest {
"LatLng [longitude=3.4, latitude=1.2, altitude=5.6]");
}
- @Test
- public void testDistanceTo() {
- LatLng latLng1 = new LatLng(0.0, 0.0);
- LatLng latLng2 = new LatLng(1.0, 1.0);
- assertEquals("distances should match",
- latLng1.distanceTo(latLng2),
- 157425.53710839353, DELTA);
- }
-
}