diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java index e6c2ce5cd..13a7aef0f 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java @@ -45,7 +45,6 @@ import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.stats.TrackStatistics; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @@ -190,7 +189,7 @@ public class ExportImportTest { a.assertEquals(trackPoints, TestDataUtil.getTrackPoints(contentProviderUtils, importTrackId)); // 2. trackstatistics - assertTrackStatistics(false, true, true); + assertTrackStatistics(false, true); // 4. markers assertMarkers(); @@ -231,7 +230,7 @@ public class ExportImportTest { a.assertEquals(trackPoints, TestDataUtil.getTrackPoints(contentProviderUtils, importTrackId)); // 2. trackstatistics - assertTrackStatistics(false, true, true); + assertTrackStatistics(false, true); // 4. markers assertMarkers(); @@ -302,11 +301,12 @@ public class ExportImportTest { trackPointsWithCoordinates.get(3).setType(TrackPoint.Type.SEGMENT_START_AUTOMATIC); TrackPointAssert a = new TrackPointAssert() - .setDelta(0.05); // speed is not fully + .setDelta(0.05) + .noAccuracy(); // speed is not fully a.assertEquals(trackPointsWithCoordinates, TestDataUtil.getTrackPoints(contentProviderUtils, importTrackId)); // 3. trackstatistics - assertTrackStatistics(true, true, false); + assertTrackStatistics(true, false); // 4. markers assertMarkers(); @@ -355,11 +355,12 @@ public class ExportImportTest { assertEquals(marker.getLocation().getLatitude(), importMarker.getLocation().getLatitude(), 0.001); assertEquals(marker.getLocation().getLongitude(), importMarker.getLocation().getLongitude(), 0.001); - assertEquals(marker.getLocation().getAltitude(), importMarker.getLocation().getAltitude(), 0.001); + assertEquals(marker.getLocation().getAltitude(), importMarker.getLocation().getAltitude(), 0.1); } } - private void assertTrackStatistics(boolean isGpx, boolean verifyAltitudeGainAndLoss, boolean verifyDistance) { + private void assertTrackStatistics(boolean isGpx, boolean verifyDistance) { + double delta = isGpx ? 0.1 : 0.01; Track importedTrack = contentProviderUtils.getTrack(importTrackId); assertNotNull(importedTrack.getTrackStatistics()); @@ -388,15 +389,14 @@ public class ExportImportTest { } // Altitude - assertEquals(trackStatistics.getMinAltitude(), importedTrackStatistics.getMinAltitude(), 0.01); - assertEquals(trackStatistics.getMaxAltitude(), importedTrackStatistics.getMaxAltitude(), 0.01); - if (verifyAltitudeGainAndLoss) { - assertEquals(trackStatistics.getTotalAltitudeGain(), importedTrackStatistics.getTotalAltitudeGain(), 0.01); - assertEquals(trackStatistics.getTotalAltitudeLoss(), importedTrackStatistics.getTotalAltitudeLoss(), 0.01); + assertEquals(trackStatistics.getMinAltitude(), importedTrackStatistics.getMinAltitude(), delta); + if (isGpx) { + assertEquals(trackStatistics.getMaxAltitude(), importedTrackStatistics.getMaxAltitude(), 2); } else { - assertFalse(importedTrackStatistics.hasTotalAltitudeGain()); - assertFalse(importedTrackStatistics.hasTotalAltitudeLoss()); + assertEquals(trackStatistics.getMaxAltitude(), importedTrackStatistics.getMaxAltitude(), delta); } + assertEquals(trackStatistics.getTotalAltitudeGain(), importedTrackStatistics.getTotalAltitudeGain(), delta); + assertEquals(trackStatistics.getTotalAltitudeLoss(), importedTrackStatistics.getTotalAltitudeLoss(), delta); } private static TrackPoint createTrackPoint(long time, double latitude, double longitude, float accuracy, float speed, float altitude, float altitudeGain, float heartRate, float cyclingCadence, float power, Distance distance) { diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/TrackPointAssert.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/TrackPointAssert.java index fd9202b78..1e0130e5a 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/TrackPointAssert.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/TrackPointAssert.java @@ -24,17 +24,15 @@ public class TrackPointAssert { Assert.assertEquals(expected.getType(), actual.getType()); + Assert.assertEquals(expected.hasLocation(), actual.hasLocation()); if (expected.hasLocation()) { - Assert.assertEquals(expected.hasLocation(), actual.hasLocation()); - if (expected.hasLocation()) { - Assert.assertEquals(expected.getLatitude(), actual.getLatitude(), delta); - Assert.assertEquals(expected.getLongitude(), actual.getLongitude(), delta); - } + Assert.assertEquals(expected.getLatitude(), actual.getLatitude(), 0.001); + Assert.assertEquals(expected.getLongitude(), actual.getLongitude(), 0.001); + } - Assert.assertEquals(expected.hasAltitude(), actual.hasAltitude()); - if (expected.hasAltitude()) { - Assert.assertEquals(expected.getAltitude().toM(), actual.getAltitude().toM(), delta); - } + Assert.assertEquals(expected.hasAltitude(), actual.hasAltitude()); + if (expected.hasAltitude()) { + Assert.assertEquals(expected.getAltitude().toM(), actual.getAltitude().toM(), delta); } Assert.assertEquals(expected.hasAltitudeGain(), actual.hasAltitudeGain()); diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLocation.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLocation.java index 8bee6958a..803e4e585 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLocation.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestLocation.java @@ -119,21 +119,33 @@ public class TrackRecordingServiceTestLocation { a.assertEquals(List.of( new TrackPoint(TrackPoint.Type.SEGMENT_START_MANUAL), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(1) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45.0001) + .setLongitude(35) .setAccuracy(2) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45.0001) + .setLongitude(35) .setAccuracy(3) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45.0002) + .setLongitude(35) .setAccuracy(4) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45.0003) + .setLongitude(35) .setAccuracy(5) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45.0004) + .setLongitude(35) .setAccuracy(6) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.SEGMENT_END_MANUAL) @@ -166,9 +178,13 @@ public class TrackRecordingServiceTestLocation { a.assertEquals(List.of( new TrackPoint(TrackPoint.Type.SEGMENT_START_MANUAL), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(1) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45.0005) + .setLongitude(35) .setAccuracy(6) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.SEGMENT_END_MANUAL) @@ -200,12 +216,18 @@ public class TrackRecordingServiceTestLocation { a.assertEquals(List.of( new TrackPoint(TrackPoint.Type.SEGMENT_START_MANUAL), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(1) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.TRACKPOINT) //TODO Why is this added? Systems is idle and not moving at all. + .setLatitude(45) + .setLongitude(35) .setAccuracy(2) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(6) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.SEGMENT_END_MANUAL) @@ -237,15 +259,23 @@ public class TrackRecordingServiceTestLocation { a.assertEquals(List.of( new TrackPoint(TrackPoint.Type.SEGMENT_START_MANUAL), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(1) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.TRACKPOINT) //TODO Check why this trackPoint is inserted. + .setLatitude(45) + .setLongitude(35) .setAccuracy(2) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.TRACKPOINT) //TODO Check why this trackPoint is inserted. + .setLatitude(45) + .setLongitude(35) .setAccuracy(5) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(6) .setSpeed(Speed.of(15)), new TrackPoint(TrackPoint.Type.SEGMENT_END_MANUAL) @@ -292,26 +322,38 @@ public class TrackRecordingServiceTestLocation { a.assertEquals(List.of( new TrackPoint(TrackPoint.Type.SEGMENT_START_MANUAL), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(1) .setSpeed(Speed.of(0)) .setHeartRate_bpm(5f), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(2) .setSpeed(Speed.of(0)) .setHeartRate_bpm(5f), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(3) .setSpeed(Speed.of(0)) .setHeartRate_bpm(5f), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(4) .setSpeed(Speed.of(0)) .setHeartRate_bpm(5f), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(5) .setSpeed(Speed.of(0)) .setHeartRate_bpm(5f), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(6) .setSpeed(Speed.of(0)) .setHeartRate_bpm(5f), @@ -345,20 +387,30 @@ public class TrackRecordingServiceTestLocation { a.assertEquals(List.of( new TrackPoint(TrackPoint.Type.SEGMENT_START_MANUAL), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45) + .setLongitude(35) .setAccuracy(1) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.SEGMENT_START_AUTOMATIC) + .setLatitude(45.1) + .setLongitude(35) .setAccuracy(2) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45.1) + .setLongitude(35) .setAccuracy(3) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.SEGMENT_START_AUTOMATIC) + .setLatitude(45.2) + .setLongitude(35) .setAccuracy(4) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.TRACKPOINT) + .setLatitude(45.2) + .setLongitude(35) .setAccuracy(5) .setSpeed(Speed.of(0)), new TrackPoint(TrackPoint.Type.SEGMENT_END_MANUAL)