1 package tim.prune.data;
3 import static org.junit.jupiter.api.Assertions.*;
5 import org.junit.jupiter.api.Test;
8 * JUnit tests for calculation of moving time of a range
9 * based on different timestamp availability
17 Track track = new Track();
18 DataPoint[] points = {
21 "01-Jan-2020 00:00:00",
23 new FieldList(new Field[] {
29 "01-Jan-2020 00:00:05",
31 new FieldList(new Field[] {
37 "01-Jan-2020 00:00:07",
39 new FieldList(new Field[] {
44 track.appendPoints(points);
46 RangeStats range = new RangeStats(track, 0, track.getNumPoints() - 1);
47 assertEquals(7, range.getMovingDurationInSeconds());
48 assertEquals(7, range.getTotalDurationInSeconds());
49 assertFalse(range.getTimestampsIncomplete());
50 assertFalse(range.getTimestampsOutOfSequence());
54 void movingTimeWithGap()
56 Track track = new Track();
57 DataPoint[] points = {
60 "01-Jan-2020 00:00:00",
62 new FieldList(new Field[] {
68 new FieldList(new Field[] {}),
72 "01-Jan-2020 00:00:05",
74 new FieldList(new Field[] {
80 "01-Jan-2020 00:00:07",
82 new FieldList(new Field[] {
87 track.appendPoints(points);
89 RangeStats range = new RangeStats(track, 0, track.getNumPoints() - 1);
90 assertEquals(7, range.getMovingDurationInSeconds());
91 assertEquals(7, range.getTotalDurationInSeconds());
92 assertTrue(range.getTimestampsIncomplete());
93 assertFalse(range.getTimestampsOutOfSequence());
97 void movingTimeSeveralSegments()
99 Track track = new Track();
100 DataPoint[] points = {
103 "01-Jan-2020 00:01:00",
105 new FieldList(new Field[] {
111 new FieldList(new Field[] {}),
115 "01-Jan-2020 00:01:05",
117 new FieldList(new Field[] {
123 "01-Jan-2020 00:01:07",
125 new FieldList(new Field[] {
129 // start a second segment
132 "01-Jan-2020 00:00:20",
135 new FieldList(new Field[] {
142 "01-Jan-2020 00:00:27",
144 new FieldList(new Field[] {
149 track.appendPoints(points);
151 RangeStats range = new RangeStats(track, 0, track.getNumPoints() - 1);
152 assertEquals(7 + 7, range.getMovingDurationInSeconds());
153 assertEquals(47, range.getTotalDurationInSeconds());
154 assertTrue(range.getEarliestTimestamp().isEqual(new TimestampUtc("01-Jan-2020 00:00:20")));
155 assertTrue(range.getLatestTimestamp().isEqual(new TimestampUtc("01-Jan-2020 00:01:07")));
156 assertTrue(range.getTimestampsIncomplete());
158 // even though segment 2 is earlier than segment 1, timestamps
159 // within each segment are normally ordered
160 assertFalse(range.getTimestampsOutOfSequence());
164 void movingTimeMissingFirstTimestamp()
166 Track track = new Track();
167 DataPoint[] points = {
170 new FieldList(new Field[] {}),
174 "01-Jan-2020 00:00:00",
176 new FieldList(new Field[] {
182 "01-Jan-2020 00:00:05",
184 new FieldList(new Field[] {
189 track.appendPoints(points);
191 RangeStats range = new RangeStats(track, 0, track.getNumPoints() - 1);
192 assertEquals(5, range.getMovingDurationInSeconds());
193 assertEquals(5, range.getTotalDurationInSeconds());
194 assertTrue(range.getTimestampsIncomplete());
195 assertFalse(range.getTimestampsOutOfSequence());