diff options
author | Brad Leege <bleege@gmail.com> | 2016-03-25 16:32:33 -0500 |
---|---|---|
committer | Brad Leege <bleege@gmail.com> | 2016-03-25 16:55:07 -0500 |
commit | 7a9a58f4fb493ce65a664422ba09ae436757316c (patch) | |
tree | 1c9bd3939050089acbcba8bea5c57b4e298e2042 | |
parent | 464c29f043794925e9d303dfb6bcf2a4ed22fa8d (diff) | |
download | qtlocation-mapboxgl-7a9a58f4fb493ce65a664422ba09ae436757316c.tar.gz |
[android] #4475 - Only wrapping when needed in LatLng.wrap(). Making Javadoc more clear. Making tests consistent.
3 files changed, 16 insertions, 5 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 0007a9f4a9..1ba2a14e94 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 @@ -126,7 +126,10 @@ public class LatLng implements ILatLng, Parcelable { */ public LatLng wrap(){ LatLng wrappedVersion = new LatLng(this); - wrappedVersion.setLongitude(MathUtils.wrap(wrappedVersion.getLongitude(), GeoConstants.MIN_LONGITUDE, GeoConstants.MAX_LONGITUDE)); + double lon = wrappedVersion.getLongitude(); + if (lon < GeoConstants.MIN_LONGITUDE || lon > GeoConstants.MAX_LONGITUDE) { + wrappedVersion.setLongitude(MathUtils.wrap(wrappedVersion.getLongitude(), GeoConstants.MIN_LONGITUDE, GeoConstants.MAX_LONGITUDE)); + } return wrappedVersion; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java index 1803462b46..922fb11868 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/MathUtils.java @@ -25,7 +25,7 @@ public class MathUtils { } /** - * Constrains n to the given range (including min, excluding max) via modular arithmetic. + * Constrains value to the given range (including min, excluding max) via modular arithmetic. * * Same formula as used in Core GL (math.hpp) * std::fmod((std::fmod((value - min), d) + d), d) + min; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngTest.java index 984e559298..e13efb9708 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngTest.java @@ -6,11 +6,11 @@ import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.utils.MockParcel; import org.junit.Test; import java.util.Objects; -import dalvik.annotation.TestTargetClass; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; @@ -204,7 +204,15 @@ public class LatLngTest { public void testWrapped() { LatLng latLng = new LatLng(45.0, -185.0); LatLng wrapped = latLng.wrap(); - assertTrue(!latLng.equals(wrapped)); - assertTrue(wrapped.getLongitude() == 175.0); + assertNotSame(latLng, wrapped); + assertEquals("longitude wrapped value", wrapped.getLongitude(), 175.0, DELTA); + } + + @Test + public void testUnnecessaryWrapped() { + LatLng latLng = new LatLng(45.0, 50.0); + LatLng wrapped = latLng.wrap(); + assertNotSame(latLng, wrapped); + assertEquals("longitude wrapped value", wrapped.getLongitude(), 50.0, DELTA); } } |