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 7aa7757da..ed584df35 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 @@ -202,7 +202,7 @@ public class ExportImportTest { // given Track track = contentProviderUtils.getTrack(trackId); - TrackExporter trackExporter = TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA.createTrackExporter(context, contentProviderUtils); + TrackExporter trackExporter = TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA_AND_PICTURES.createTrackExporter(context, contentProviderUtils); // when // 1. export @@ -238,24 +238,24 @@ public class ExportImportTest { TrackStatistics originalTrackStatistics = track.getTrackStatistics(); assertEquals(originalTrackStatistics.getTotalTime(), importedTrackStatistics.getTotalTime()); - assertEquals(Duration.ofSeconds(19), importedTrackStatistics.getTotalTime()); + assertEquals(Duration.ofSeconds(20), importedTrackStatistics.getTotalTime()); assertEquals(originalTrackStatistics.getMovingTime(), importedTrackStatistics.getMovingTime()); - assertEquals(Duration.ofSeconds(3), importedTrackStatistics.getMovingTime()); + assertEquals(Duration.ofSeconds(4), importedTrackStatistics.getMovingTime()); // Distance assertEquals(originalTrackStatistics.getTotalDistance(), importedTrackStatistics.getTotalDistance()); - assertEquals(125.16, importedTrackStatistics.getTotalDistance().toM(), 0.01); + assertEquals(222238.70, importedTrackStatistics.getTotalDistance().toM(), 0.01); // Speed assertEquals(originalTrackStatistics.getMaxSpeed(), importedTrackStatistics.getMaxSpeed()); - assertEquals(41.72, importedTrackStatistics.getMaxSpeed().toMPS(), 0.01); + assertEquals(55559.67, importedTrackStatistics.getMaxSpeed().toMPS(), 0.01); assertEquals(originalTrackStatistics.getAverageSpeed(), importedTrackStatistics.getAverageSpeed()); - assertEquals(6.58, importedTrackStatistics.getAverageSpeed().toMPS(), 0.01); + assertEquals(11111.93, importedTrackStatistics.getAverageSpeed().toMPS(), 0.01); assertEquals(originalTrackStatistics.getAverageMovingSpeed(), importedTrackStatistics.getAverageMovingSpeed()); - assertEquals(41.72, importedTrackStatistics.getMaxSpeed().toMPS(), 0.01); + assertEquals(55559.67, importedTrackStatistics.getMaxSpeed().toMPS(), 0.01); // Altitude assertEquals(originalTrackStatistics.getMinAltitude(), importedTrackStatistics.getMinAltitude(), 0.01); @@ -394,16 +394,16 @@ public class ExportImportTest { assertEquals(Instant.parse("2020-02-02T02:02:03Z"), importedTrackStatistics.getStartTime()); assertEquals(Instant.parse("2020-02-02T02:03:23Z"), importedTrackStatistics.getStopTime()); - assertEquals(Duration.ofSeconds(15), importedTrackStatistics.getTotalTime()); - assertEquals(Duration.ofSeconds(15), importedTrackStatistics.getMovingTime()); + assertEquals(Duration.ofSeconds(80), importedTrackStatistics.getTotalTime()); + assertEquals(Duration.ofSeconds(80), importedTrackStatistics.getMovingTime()); // Distance - assertEquals(125.16, importedTrackStatistics.getTotalDistance().toM(), 0.01); + assertEquals(222349.85, importedTrackStatistics.getTotalDistance().toM(), 0.01); // Speed - assertEquals(8.34, importedTrackStatistics.getMaxSpeed().toMPS(), 0.01); - assertEquals(8.34, importedTrackStatistics.getAverageSpeed().toMPS(), 0.01); - assertEquals(8.34, importedTrackStatistics.getAverageMovingSpeed().toMPS(), 0.01); + assertEquals(2779.37, importedTrackStatistics.getMaxSpeed().toMPS(), 0.01); + assertEquals(2779.37, importedTrackStatistics.getAverageSpeed().toMPS(), 0.01); + assertEquals(2779.37, importedTrackStatistics.getAverageMovingSpeed().toMPS(), 0.01); // Altitude assertEquals(10, importedTrackStatistics.getMinAltitude(), 0.01); diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestRecording.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestRecording.java index 4bd0c580d..58be6700d 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestRecording.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestRecording.java @@ -765,7 +765,7 @@ public class TrackRecordingServiceTestRecording { TrackRecordingServiceTestUtils.sendGPSLocation(trackPointCreator, gps2, 45.1, 35.0, 1, 15); // then - assertEquals(new TrackStatistics(startTime, gps2, 0, 1, 0, 0, 0f, 0f), contentProviderUtils.getTrack(trackId).getTrackStatistics()); + assertEquals(new TrackStatistics(startTime, gps2, 11113.275390625, 4, 3, 3704.4251302083335f, 0f, 0f).toString(), contentProviderUtils.getTrack(trackId).getTrackStatistics().toString()); // when @@ -774,8 +774,7 @@ public class TrackRecordingServiceTestRecording { service.endCurrentTrack(); // then - assertEquals(new TrackStatistics(startTime, stopTime, 0, 7, 0, 0, 0f, 0f) - , contentProviderUtils.getTrack(trackId).getTrackStatistics()); + assertEquals(new TrackStatistics(startTime, stopTime, 11113.275390625, 10, 3, 3704.4251302083335f, 0f, 0f).toString(), contentProviderUtils.getTrack(trackId).getTrackStatistics().toString()); // then diff --git a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java index 84a65c55a..b8e048cd1 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java @@ -81,9 +81,9 @@ public class TrackStatisticsUpdaterTest { // then TrackStatistics statistics = subject.getTrackStatistics(); - assertEquals(128.03, statistics.getTotalDistance().toM(), 0.01); - assertEquals(Duration.ofSeconds(13), statistics.getTotalTime()); - assertEquals(Duration.ofSeconds(9), statistics.getMovingTime()); + assertEquals(142.26, statistics.getTotalDistance().toM(), 0.01); + assertEquals(Duration.ofSeconds(14), statistics.getTotalTime()); + assertEquals(Duration.ofSeconds(10), statistics.getMovingTime()); assertEquals(2.5, statistics.getMinAltitude(), 0.01); assertEquals(32.5, statistics.getMaxAltitude(), 0.01); @@ -92,8 +92,8 @@ public class TrackStatisticsUpdaterTest { assertEquals(14.226, statistics.getMaxSpeed().toMPS(), 0.01); assertEquals(14.226, statistics.getAverageMovingSpeed().toMPS(), 0.01); - assertEquals(9.84, statistics.getAverageSpeed().toMPS(), 0.01); - assertEquals(106.85f, statistics.getAverageHeartRate().getBPM(), 0.01); + assertEquals(10.16, statistics.getAverageSpeed().toMPS(), 0.01); + assertEquals(106.64f, statistics.getAverageHeartRate().getBPM(), 0.01); } @Test diff --git a/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java b/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java index f7f42d54a..38ac06e0a 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java @@ -130,11 +130,11 @@ public class TrackPoint { return this; } - public boolean isSegmentStart() { - return type == Type.SEGMENT_START_AUTOMATIC || type == Type.SEGMENT_START_MANUAL; + public boolean isSegmentManualStart() { + return type == Type.SEGMENT_START_MANUAL; } - public boolean isSegmentEnd() { + public boolean isSegmentManualEnd() { return type == Type.SEGMENT_END_MANUAL; } diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java index 06a63f347..644dd6d4d 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java @@ -38,6 +38,7 @@ import de.dennisguse.opentracks.data.models.TrackPoint; */ //TODO Use null instead of Double.isInfinite //TODO Check that data ranges are valid (not less than zero etc.) +//TODO Should be a Java record public class TrackStatistics { // The min and max altitude (meters) seen on this track. diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java index 833ad47c4..6a7f6dfe2 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java @@ -95,7 +95,7 @@ public class TrackStatisticsUpdater { * */ public void addTrackPoint(TrackPoint trackPoint) { - if (trackPoint.isSegmentStart()) { + if (trackPoint.isSegmentManualStart()) { reset(trackPoint); } @@ -154,7 +154,7 @@ public class TrackStatisticsUpdater { updateSpeed(trackPoint, lastTrackPoint); } - if (trackPoint.isSegmentEnd()) { + if (trackPoint.isSegmentManualEnd()) { reset(trackPoint); return; }