forked from upstream-mirrors/OpenTracks
Test: IntervalStatisticsUpdaterTest doesn't store data anymore.
This commit is contained in:
@@ -6,7 +6,6 @@ import android.util.Pair;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.Duration;
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -85,10 +84,6 @@ public class TestDataUtil {
|
|||||||
createTrackPoint(i, TrackPoint.Type.SEGMENT_END_MANUAL)
|
createTrackPoint(i, TrackPoint.Type.SEGMENT_END_MANUAL)
|
||||||
);
|
);
|
||||||
|
|
||||||
//TODO Use TrackStatisticsUpdater
|
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
|
||||||
stats.setTotalDistance(Distance.of(0));
|
|
||||||
stats.setTotalTime(Duration.ofMillis(0));
|
|
||||||
List<Marker> markers = List.of(
|
List<Marker> markers = List.of(
|
||||||
new Marker(trackId, trackPoints.get(1), "Marker 1", "Marker description 1", "Marker category 3", "", null),
|
new Marker(trackId, trackPoints.get(1), "Marker 1", "Marker description 1", "Marker category 3", "", null),
|
||||||
new Marker(trackId, trackPoints.get(4), "Marker 2", "Marker description 2", "Marker category 3", "", null),
|
new Marker(trackId, trackPoints.get(4), "Marker 2", "Marker description 2", "Marker category 3", "", null),
|
||||||
@@ -153,11 +148,6 @@ public class TestDataUtil {
|
|||||||
dstFile.createNewFile();
|
dstFile.createNewFile();
|
||||||
Uri photoUri = FileUtils.getUriForFile(context, dstFile);
|
Uri photoUri = FileUtils.getUriForFile(context, dstFile);
|
||||||
|
|
||||||
//TODO Use TrackStatisticsUpdater
|
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
|
||||||
stats.setTotalDistance(Distance.of(0));
|
|
||||||
stats.setTotalTime(Duration.ofMillis(0));
|
|
||||||
|
|
||||||
return new Marker(trackId, trackPoint, "Marker name", "Marker description", "Marker category", "", photoUri);
|
return new Marker(trackId, trackPoint, "Marker name", "Marker description", "Marker category", "", photoUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+30
-38
@@ -3,40 +3,24 @@ package de.dennisguse.opentracks.ui.intervals;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
|
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.JUnit4;
|
import org.junit.runners.JUnit4;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.content.data.TestDataUtil;
|
import de.dennisguse.opentracks.content.data.TestDataUtil;
|
||||||
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
|
||||||
import de.dennisguse.opentracks.data.TrackPointIterator;
|
|
||||||
import de.dennisguse.opentracks.data.models.Distance;
|
import de.dennisguse.opentracks.data.models.Distance;
|
||||||
import de.dennisguse.opentracks.data.models.Track;
|
import de.dennisguse.opentracks.data.models.Track;
|
||||||
import de.dennisguse.opentracks.data.models.TrackPoint;
|
import de.dennisguse.opentracks.data.models.TrackPoint;
|
||||||
import de.dennisguse.opentracks.stats.SegmentStatisticUpdater;
|
|
||||||
import de.dennisguse.opentracks.stats.TrackStatisticsUpdater;
|
import de.dennisguse.opentracks.stats.TrackStatisticsUpdater;
|
||||||
|
|
||||||
@RunWith(JUnit4.class)
|
@RunWith(JUnit4.class)
|
||||||
public class IntervalStatisticsUpdaterTest {
|
public class IntervalStatisticsUpdaterTest {
|
||||||
|
|
||||||
private static final String TAG = IntervalStatisticsUpdaterTest.class.getSimpleName();
|
|
||||||
|
|
||||||
private final Context context = ApplicationProvider.getApplicationContext();
|
|
||||||
private ContentProviderUtils contentProviderUtils;
|
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setUp() {
|
|
||||||
contentProviderUtils = new ContentProviderUtils(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that build method compute the distance correctly comparing the result with TrackStatisticsUpdater result.
|
* Tests that build method compute the distance correctly comparing the result with TrackStatisticsUpdater result.
|
||||||
*/
|
*/
|
||||||
@@ -117,36 +101,31 @@ public class IntervalStatisticsUpdaterTest {
|
|||||||
Track dummyTrack = new Track();
|
Track dummyTrack = new Track();
|
||||||
dummyTrack.setId(new Track.Id(System.currentTimeMillis()));
|
dummyTrack.setId(new Track.Id(System.currentTimeMillis()));
|
||||||
dummyTrack.setName("Dummy Track Without Elevation Loss");
|
dummyTrack.setName("Dummy Track Without Elevation Loss");
|
||||||
contentProviderUtils.insertTrack(dummyTrack);
|
|
||||||
TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater();
|
TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater();
|
||||||
|
|
||||||
|
ArrayList<TrackPoint> trackPoints = new ArrayList<>();
|
||||||
for (int i = 0; i < numberOfPoints; i++) {
|
for (int i = 0; i < numberOfPoints; i++) {
|
||||||
TrackPoint tp = TestDataUtil.createTrackPoint(i);
|
trackPoints.add(TestDataUtil.createTrackPoint(i).setAltitudeLoss(null));
|
||||||
tp.setAltitudeLoss(null);
|
|
||||||
contentProviderUtils.insertTrackPoint(tp, dummyTrack.getId());
|
|
||||||
trackStatisticsUpdater.addTrackPoint(tp);
|
|
||||||
}
|
}
|
||||||
|
trackStatisticsUpdater.addTrackPoints(trackPoints);
|
||||||
|
|
||||||
dummyTrack.setStatistics(trackStatisticsUpdater.getTrackStatistics());
|
dummyTrack.setStatistics(trackStatisticsUpdater.getTrackStatistics());
|
||||||
contentProviderUtils.updateTrack(dummyTrack);
|
Pair<Track, List<TrackPoint>> trackWithStats = new Pair<>(dummyTrack, trackPoints);
|
||||||
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = new Pair<>(dummyTrack.getId(), trackStatisticsUpdater.getSegmentStatisticUpdater());
|
|
||||||
|
|
||||||
// when and then
|
// when and then
|
||||||
whenAndThen(trackWithStats, numberOfPoints, distanceInterval);
|
whenAndThen(trackWithStats.first, trackWithStats.second, numberOfPoints, distanceInterval);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void whenAndThen(int numberOfPoints, float distanceInterval) {
|
private void whenAndThen(int numberOfPoints, float distanceInterval) {
|
||||||
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = TestDataUtil.buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
Pair<Track, List<TrackPoint>> trackWithStats = buildTrackWithTrackPoints(numberOfPoints);
|
||||||
whenAndThen(trackWithStats, numberOfPoints, distanceInterval);
|
whenAndThen(trackWithStats.first, trackWithStats.second, numberOfPoints, distanceInterval);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void whenAndThen(Pair<Track.Id, SegmentStatisticUpdater> trackWithStats, int numberOfPoints, float distanceInterval) {
|
private void whenAndThen(Track track, List<TrackPoint> trackPoints, int numberOfPoints, float distanceInterval) {
|
||||||
IntervalStatisticsUpdater intervalStatistics = new IntervalStatisticsUpdater(Distance.of(distanceInterval));
|
IntervalStatisticsUpdater intervalStatistics = new IntervalStatisticsUpdater(Distance.of(distanceInterval));
|
||||||
Track.Id trackId = trackWithStats.first;
|
|
||||||
SegmentStatisticUpdater trackStatistics = trackWithStats.second;
|
intervalStatistics.addTrackPoints(trackPoints.iterator());
|
||||||
try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) {
|
|
||||||
assertEquals(trackPointIterator.getCount(), numberOfPoints);
|
|
||||||
intervalStatistics.addTrackPoints(trackPointIterator);
|
|
||||||
}
|
|
||||||
List<IntervalStatisticsUpdater.Interval> intervalList = intervalStatistics.getIntervalList();
|
List<IntervalStatisticsUpdater.Interval> intervalList = intervalStatistics.getIntervalList();
|
||||||
Distance totalDistance = Distance.of(0);
|
Distance totalDistance = Distance.of(0);
|
||||||
float totalTime = 0L;
|
float totalTime = 0L;
|
||||||
@@ -170,9 +149,9 @@ public class IntervalStatisticsUpdaterTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertEquals(trackStatistics.getTotalDistance().toM(), totalDistance.toM(), 0.01);
|
assertEquals(track.getStatistics().totalTime().toSeconds(), totalTime, 0.01);
|
||||||
assertEquals(trackStatistics.getTotalTime().toSeconds(), totalTime, 0.01);
|
assertEquals(track.getStatistics().totalDistance().toM(), totalDistance.toM(), 0.01);
|
||||||
assertEquals(intervalList.size(), (int) Math.ceil(trackStatistics.getTotalDistance().toM() / distanceInterval));
|
assertEquals(intervalList.size(), (int) Math.ceil(track.getStatistics().totalDistance().toM() / distanceInterval));
|
||||||
if (totalGain != null) {
|
if (totalGain != null) {
|
||||||
assertEquals(totalGain, numberOfPoints * TestDataUtil.ALTITUDE_GAIN, 0.1);
|
assertEquals(totalGain, numberOfPoints * TestDataUtil.ALTITUDE_GAIN, 0.1);
|
||||||
} else {
|
} else {
|
||||||
@@ -190,4 +169,17 @@ public class IntervalStatisticsUpdaterTest {
|
|||||||
}
|
}
|
||||||
assertEquals(intervalList.get(intervalList.size() - 1).getDistance().toM(), totalDistance.toM(), 0.01);
|
assertEquals(intervalList.get(intervalList.size() - 1).getDistance().toM(), totalDistance.toM(), 0.01);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Pair<Track, List<TrackPoint>> buildTrackWithTrackPoints(int numberOfPoints) {
|
||||||
|
Track dummyTrack = new Track();
|
||||||
|
TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater();
|
||||||
|
|
||||||
|
ArrayList<TrackPoint> trackPoints = new ArrayList<>();
|
||||||
|
for (int i = 0; i < numberOfPoints; i++) {
|
||||||
|
trackPoints.add(TestDataUtil.createTrackPoint(i));
|
||||||
|
}
|
||||||
|
trackStatisticsUpdater.addTrackPoints(trackPoints);
|
||||||
|
dummyTrack.setStatistics(trackStatisticsUpdater.getTrackStatistics());
|
||||||
|
return new Pair<>(dummyTrack, trackPoints);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -4,9 +4,9 @@ import androidx.annotation.Nullable;
|
|||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.data.TrackPointIterator;
|
|
||||||
import de.dennisguse.opentracks.data.models.Distance;
|
import de.dennisguse.opentracks.data.models.Distance;
|
||||||
import de.dennisguse.opentracks.data.models.HeartRate;
|
import de.dennisguse.opentracks.data.models.HeartRate;
|
||||||
import de.dennisguse.opentracks.data.models.Power;
|
import de.dennisguse.opentracks.data.models.Power;
|
||||||
@@ -38,7 +38,7 @@ public class IntervalStatisticsUpdater {
|
|||||||
*
|
*
|
||||||
* @return the last track point's id used to compute the intervals.
|
* @return the last track point's id used to compute the intervals.
|
||||||
*/
|
*/
|
||||||
public TrackPoint.Id addTrackPoints(TrackPointIterator trackPointIterator) {
|
public TrackPoint.Id addTrackPoints(Iterator<TrackPoint> trackPointIterator) {
|
||||||
boolean newIntervalAdded = false;
|
boolean newIntervalAdded = false;
|
||||||
TrackPoint trackPoint = null;
|
TrackPoint trackPoint = null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user