TrackPointAssert: always check location.

This commit is contained in:
Dennis Guse
2021-06-30 07:06:18 +02:00
parent 9fb5cf33ca
commit 3cb04a1ca0
3 changed files with 73 additions and 23 deletions
@@ -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) {
@@ -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());
@@ -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)