forked from upstream-mirrors/OpenTracks
Refactored VoiceAnnouncementUtilsTest.
This commit is contained in:
@@ -19,8 +19,6 @@ import de.dennisguse.opentracks.data.models.Position;
|
|||||||
import de.dennisguse.opentracks.data.models.Speed;
|
import de.dennisguse.opentracks.data.models.Speed;
|
||||||
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.ui.markers.MarkerUtils;
|
import de.dennisguse.opentracks.ui.markers.MarkerUtils;
|
||||||
import de.dennisguse.opentracks.util.FileUtils;
|
import de.dennisguse.opentracks.util.FileUtils;
|
||||||
|
|
||||||
@@ -160,20 +158,4 @@ public class TestDataUtil {
|
|||||||
return trackPoints;
|
return trackPoints;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Pair<Track.Id, SegmentStatisticUpdater> buildTrackWithTrackPoints(ContentProviderUtils contentProviderUtils, int numberOfPoints) {
|
|
||||||
Track dummyTrack = new Track();
|
|
||||||
dummyTrack.setId(new Track.Id(System.currentTimeMillis()));
|
|
||||||
dummyTrack.setName("Dummy Track");
|
|
||||||
contentProviderUtils.insertTrack(dummyTrack);
|
|
||||||
TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater();
|
|
||||||
for (int i = 0; i < numberOfPoints; i++) {
|
|
||||||
TrackPoint tp = TestDataUtil.createTrackPoint(i);
|
|
||||||
contentProviderUtils.insertTrackPoint(tp, dummyTrack.getId());
|
|
||||||
trackStatisticsUpdater.addTrackPoint(tp);
|
|
||||||
}
|
|
||||||
dummyTrack.setStatistics(trackStatisticsUpdater.getTrackStatistics());
|
|
||||||
contentProviderUtils.updateTrack(dummyTrack);
|
|
||||||
return new Pair<>(dummyTrack.getId(), trackStatisticsUpdater.getSegmentStatisticUpdater());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+162
-112
@@ -26,15 +26,19 @@ import de.dennisguse.opentracks.LocaleRule;
|
|||||||
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.ContentProviderUtils;
|
||||||
import de.dennisguse.opentracks.data.TrackPointIterator;
|
import de.dennisguse.opentracks.data.TrackPointIterator;
|
||||||
|
import de.dennisguse.opentracks.data.models.AltitudeGainLoss;
|
||||||
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.Speed;
|
import de.dennisguse.opentracks.data.models.Speed;
|
||||||
|
import de.dennisguse.opentracks.data.models.Statistics;
|
||||||
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.sensors.sensorData.SensorDataSet;
|
import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet;
|
||||||
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.settings.UnitSystem;
|
import de.dennisguse.opentracks.settings.UnitSystem;
|
||||||
import de.dennisguse.opentracks.stats.SegmentStatisticUpdater;
|
import de.dennisguse.opentracks.stats.SegmentStatisticUpdater;
|
||||||
import de.dennisguse.opentracks.stats.SensorStatistics;
|
import de.dennisguse.opentracks.stats.SensorStatistics;
|
||||||
|
import de.dennisguse.opentracks.stats.TrackStatisticsUpdater;
|
||||||
import de.dennisguse.opentracks.ui.intervals.IntervalStatisticsUpdater;
|
import de.dennisguse.opentracks.ui.intervals.IntervalStatisticsUpdater;
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
@@ -66,16 +70,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_metric_speed() {
|
public void getAnnouncement_metric_speed() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.of(20000));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(1).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMaxSpeed(Speed.of(100));
|
Distance.of(20000),
|
||||||
stats.setTotalAltitudeGain(6000f);
|
false,
|
||||||
|
Speed.of(100),
|
||||||
Track track = new Track();
|
null,
|
||||||
track.setTrackStatistics(stats);
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -89,16 +96,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_metric_speed_rounding_check() {
|
public void getAnnouncement_metric_speed_rounding_check() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.of(20000));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1).plusSeconds(1));
|
Duration.ofHours(1).plusSeconds(1),
|
||||||
stats.setMaxSpeed(Speed.of(100));
|
Distance.of(20000),
|
||||||
stats.setTotalAltitudeGain(6000f);
|
false,
|
||||||
|
Speed.of(100),
|
||||||
Track track = new Track();
|
null,
|
||||||
track.setTrackStatistics(stats);
|
new AltitudeGainLoss(6000, 6000),
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -112,16 +122,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_metric_distance_rounding_check() {
|
public void getAnnouncement_metric_distance_rounding_check() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.of(19999));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1));
|
Duration.ofHours(1),
|
||||||
stats.setMaxSpeed(Speed.of(100));
|
Distance.of(19999),
|
||||||
stats.setTotalAltitudeGain(6000f);
|
false,
|
||||||
|
Speed.of(100),
|
||||||
Track track = new Track();
|
null,
|
||||||
track.setTrackStatistics(stats);
|
new AltitudeGainLoss(6000, 6000),
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -135,16 +148,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_metric_distance_rounding_check_two() {
|
public void getAnnouncement_metric_distance_rounding_check_two() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.of(19900));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1));
|
Duration.ofHours(1),
|
||||||
stats.setMaxSpeed(Speed.of(100));
|
Distance.of(19900),
|
||||||
stats.setTotalAltitudeGain(6000f);
|
false,
|
||||||
|
Speed.of(100),
|
||||||
Track track = new Track();
|
null,
|
||||||
track.setTrackStatistics(stats);
|
new AltitudeGainLoss(6000, 6000),
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -160,7 +176,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
public void getAnnouncement_withInterval_metric_speed() {
|
public void getAnnouncement_withInterval_metric_speed() {
|
||||||
// given
|
// given
|
||||||
int numberOfPoints = 1000;
|
int numberOfPoints = 1000;
|
||||||
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = TestDataUtil.buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
||||||
Track.Id trackId = trackWithStats.first;
|
Track.Id trackId = trackWithStats.first;
|
||||||
SegmentStatisticUpdater stats = trackWithStats.second;
|
SegmentStatisticUpdater stats = trackWithStats.second;
|
||||||
IntervalStatisticsUpdater.Interval lastInterval;
|
IntervalStatisticsUpdater.Interval lastInterval;
|
||||||
@@ -174,8 +190,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
|
|
||||||
Track track = new Track();
|
Track track = new Track(stats.getStatistics());
|
||||||
track.setTrackStatistics(stats);
|
|
||||||
|
|
||||||
// when
|
// when
|
||||||
String announcement = VoiceAnnouncementUtils.createStatistics(context, track, dataSet, UnitSystem.METRIC, true, lastInterval, null).toString();
|
String announcement = VoiceAnnouncementUtils.createStatistics(context, track, dataSet, UnitSystem.METRIC, true, lastInterval, null).toString();
|
||||||
@@ -186,16 +201,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_metric_pace() {
|
public void getAnnouncement_metric_pace() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.of(20000));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(1).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMaxSpeed(Speed.of(100));
|
Distance.of(20000),
|
||||||
stats.setTotalAltitudeGain(6000f);
|
false,
|
||||||
|
Speed.of(100),
|
||||||
Track track = new Track();
|
null,
|
||||||
track.setTrackStatistics(stats);
|
new AltitudeGainLoss(6000, 6000),
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -211,7 +229,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
public void getAnnouncement_withInterval_metric_pace() {
|
public void getAnnouncement_withInterval_metric_pace() {
|
||||||
// given
|
// given
|
||||||
int numberOfPoints = 1000;
|
int numberOfPoints = 1000;
|
||||||
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = TestDataUtil.buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
||||||
Track.Id trackId = trackWithStats.first;
|
Track.Id trackId = trackWithStats.first;
|
||||||
SegmentStatisticUpdater stats = trackWithStats.second;
|
SegmentStatisticUpdater stats = trackWithStats.second;
|
||||||
IntervalStatisticsUpdater.Interval lastInterval;
|
IntervalStatisticsUpdater.Interval lastInterval;
|
||||||
@@ -222,8 +240,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
|
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Track track = new Track();
|
Track track = new Track(stats.getStatistics());
|
||||||
track.setTrackStatistics(stats);
|
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -237,16 +254,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_imperial_speed() {
|
public void getAnnouncement_imperial_speed() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.of(20000));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(1).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMaxSpeed(Speed.of(100));
|
Distance.of(20000),
|
||||||
stats.setTotalAltitudeGain(6000f);
|
false,
|
||||||
|
Speed.of(100),
|
||||||
Track track = new Track();
|
null,
|
||||||
track.setTrackStatistics(stats);
|
new AltitudeGainLoss(6000, 6000),
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -260,14 +280,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_imperial_speed_1() {
|
public void getAnnouncement_imperial_speed_1() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.ofMile(1.1));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1));
|
Duration.ofHours(1),
|
||||||
|
Distance.ofMile(1.1),
|
||||||
Track track = new Track();
|
false,
|
||||||
track.setTrackStatistics(stats);
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -281,14 +306,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_imperial_meter_speed_1() {
|
public void getAnnouncement_imperial_meter_speed_1() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.ofMile(1.1));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1));
|
Duration.ofHours(1),
|
||||||
|
Distance.ofMile(1.1),
|
||||||
Track track = new Track();
|
false,
|
||||||
track.setTrackStatistics(stats);
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -302,14 +332,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_metric_speed_1() {
|
public void getAnnouncement_metric_speed_1() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.ofKilometer(1.1));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1));
|
Duration.ofHours(1),
|
||||||
|
Distance.ofKilometer(1.1),
|
||||||
Track track = new Track();
|
false,
|
||||||
track.setTrackStatistics(stats);
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -325,7 +360,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
public void getAnnouncement_withInterval_imperial_speed() {
|
public void getAnnouncement_withInterval_imperial_speed() {
|
||||||
// given
|
// given
|
||||||
int numberOfPoints = 1000;
|
int numberOfPoints = 1000;
|
||||||
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = TestDataUtil.buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
||||||
Track.Id trackId = trackWithStats.first;
|
Track.Id trackId = trackWithStats.first;
|
||||||
SegmentStatisticUpdater stats = trackWithStats.second;
|
SegmentStatisticUpdater stats = trackWithStats.second;
|
||||||
IntervalStatisticsUpdater.Interval lastInterval;
|
IntervalStatisticsUpdater.Interval lastInterval;
|
||||||
@@ -336,8 +371,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
|
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Track track = new Track();
|
Track track = new Track(stats.getStatistics());
|
||||||
track.setTrackStatistics(stats);
|
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -351,16 +385,19 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAnnouncement_imperial_pace() {
|
public void getAnnouncement_imperial_pace() {
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater();
|
Track track = new Track(new Statistics(
|
||||||
stats.setStartTime(Instant.EPOCH);
|
Instant.EPOCH,
|
||||||
stats.setTotalDistance(Distance.of(20000));
|
Instant.EPOCH,
|
||||||
stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(2).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMovingTime(Duration.ofHours(1).plusMinutes(5).plusSeconds(10));
|
Duration.ofHours(1).plusMinutes(5).plusSeconds(10),
|
||||||
stats.setMaxSpeed(Speed.of(100));
|
Distance.of(20000),
|
||||||
stats.setTotalAltitudeGain(6000f);
|
false,
|
||||||
|
Speed.of(100),
|
||||||
Track track = new Track();
|
null,
|
||||||
track.setTrackStatistics(stats);
|
new AltitudeGainLoss(6000, 6000),
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
));
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -376,7 +413,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
public void getAnnouncement_withInterval_imperial_pace() {
|
public void getAnnouncement_withInterval_imperial_pace() {
|
||||||
// given
|
// given
|
||||||
int numberOfPoints = 1000;
|
int numberOfPoints = 1000;
|
||||||
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = TestDataUtil.buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
||||||
Track.Id trackId = trackWithStats.first;
|
Track.Id trackId = trackWithStats.first;
|
||||||
SegmentStatisticUpdater stats = trackWithStats.second;
|
SegmentStatisticUpdater stats = trackWithStats.second;
|
||||||
IntervalStatisticsUpdater.Interval lastInterval;
|
IntervalStatisticsUpdater.Interval lastInterval;
|
||||||
@@ -387,8 +424,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
|
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Track track = new Track();
|
Track track = new Track(stats.getStatistics());
|
||||||
track.setTrackStatistics(stats);
|
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -406,7 +442,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
PreferencesUtils.setVoiceAnnounceLapHeartRate(true);
|
PreferencesUtils.setVoiceAnnounceLapHeartRate(true);
|
||||||
|
|
||||||
int numberOfPoints = 1000;
|
int numberOfPoints = 1000;
|
||||||
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = TestDataUtil.buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
||||||
Track.Id trackId = trackWithStats.first;
|
Track.Id trackId = trackWithStats.first;
|
||||||
SegmentStatisticUpdater stats = trackWithStats.second;
|
SegmentStatisticUpdater stats = trackWithStats.second;
|
||||||
IntervalStatisticsUpdater.Interval lastInterval;
|
IntervalStatisticsUpdater.Interval lastInterval;
|
||||||
@@ -419,8 +455,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
SensorStatistics sensorStatistics = new SensorStatistics(HeartRate.of(180f), HeartRate.of(180f), null, null, null, null);
|
SensorStatistics sensorStatistics = new SensorStatistics(HeartRate.of(180f), HeartRate.of(180f), null, null, null, null);
|
||||||
|
|
||||||
Track track = new Track();
|
Track track = new Track(stats.getStatistics());
|
||||||
track.setTrackStatistics(stats);
|
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -444,7 +479,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
PreferencesUtils.setVoiceAnnounceLapSpeedPace(false);
|
PreferencesUtils.setVoiceAnnounceLapSpeedPace(false);
|
||||||
|
|
||||||
int numberOfPoints = 1000;
|
int numberOfPoints = 1000;
|
||||||
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = TestDataUtil.buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
Pair<Track.Id, SegmentStatisticUpdater> trackWithStats = buildTrackWithTrackPoints(contentProviderUtils, numberOfPoints);
|
||||||
Track.Id trackId = trackWithStats.first;
|
Track.Id trackId = trackWithStats.first;
|
||||||
SegmentStatisticUpdater stats = trackWithStats.second;
|
SegmentStatisticUpdater stats = trackWithStats.second;
|
||||||
IntervalStatisticsUpdater.Interval lastInterval;
|
IntervalStatisticsUpdater.Interval lastInterval;
|
||||||
@@ -457,8 +492,7 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
|
|
||||||
SensorStatistics sensorStatistics = new SensorStatistics(HeartRate.of(180f), HeartRate.of(180f), null, null, null, null);
|
SensorStatistics sensorStatistics = new SensorStatistics(HeartRate.of(180f), HeartRate.of(180f), null, null, null, null);
|
||||||
|
|
||||||
Track track = new Track();
|
Track track = new Track(stats.getStatistics());
|
||||||
track.setTrackStatistics(stats);
|
|
||||||
|
|
||||||
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
SensorDataSet dataSet = Mockito.mock(SensorDataSet.class);
|
||||||
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
Mockito.when(dataSet.getHeartRate()).thenReturn(new Pair<>(HeartRate.of(60), "unused"));
|
||||||
@@ -484,4 +518,20 @@ public class VoiceAnnouncementUtilsTest {
|
|||||||
assertEquals("1.1 miles", MessageFormat.format(template, Map.of("n", 1.11)));
|
assertEquals("1.1 miles", MessageFormat.format(template, Map.of("n", 1.11)));
|
||||||
assertEquals("1.2 miles", MessageFormat.format(template, Map.of("n", 1.18)));
|
assertEquals("1.2 miles", MessageFormat.format(template, Map.of("n", 1.18)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Pair<Track.Id, SegmentStatisticUpdater> buildTrackWithTrackPoints(ContentProviderUtils contentProviderUtils, int numberOfPoints) {
|
||||||
|
Track dummyTrack = new Track();
|
||||||
|
dummyTrack.setId(new Track.Id(System.currentTimeMillis()));
|
||||||
|
dummyTrack.setName("Dummy Track");
|
||||||
|
contentProviderUtils.insertTrack(dummyTrack);
|
||||||
|
TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater();
|
||||||
|
for (int i = 0; i < numberOfPoints; i++) {
|
||||||
|
TrackPoint tp = TestDataUtil.createTrackPoint(i);
|
||||||
|
contentProviderUtils.insertTrackPoint(tp, dummyTrack.getId());
|
||||||
|
trackStatisticsUpdater.addTrackPoint(tp);
|
||||||
|
}
|
||||||
|
dummyTrack.setStatistics(trackStatisticsUpdater.getTrackStatistics());
|
||||||
|
contentProviderUtils.updateTrack(dummyTrack);
|
||||||
|
return new Pair<>(dummyTrack.getId(), trackStatisticsUpdater.getSegmentStatisticUpdater());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,11 +54,17 @@ public class Track {
|
|||||||
@NonNull
|
@NonNull
|
||||||
private Statistics trackStatistics;
|
private Statistics trackStatistics;
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public Track() {
|
public Track() {
|
||||||
this(ZoneOffset.UTC);
|
this(ZoneOffset.UTC);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
public Track(Statistics statistics) {
|
||||||
|
this(ZoneOffset.UTC, statistics);
|
||||||
|
}
|
||||||
|
|
||||||
@Deprecated //TODO Remove
|
@Deprecated //TODO Remove
|
||||||
public Track(@NonNull ZoneOffset zoneOffset) {
|
public Track(@NonNull ZoneOffset zoneOffset) {
|
||||||
this(zoneOffset, new SegmentStatisticUpdater().getStatistics());
|
this(zoneOffset, new SegmentStatisticUpdater().getStatistics());
|
||||||
|
|||||||
Reference in New Issue
Block a user