@@ -159,6 +159,74 @@ class TopoGrafixGpxParserTest {
159159 assertEquals(32.644943f , exercise.sampleList[203 ].speed)
160160 assertEquals(154 .toShort(), exercise.sampleList[203 ].heartRate)
161161 }
162+
163+ /* *
164+ * This test parses a GPX file for a bike tour created by Garmin Oregon with heart rate monitor using TrackPointExtension v2.
165+ * It contains track (location), time, altitude and heart rate data.
166+ */
167+ @Test
168+ fun testGpxGarminOregonHeartRateBikeTourv2 () {
169+ val exercise = parser.parseExercise(" misc/testdata/gpx/bike-tour-garmin-oregon-with-heartrate_v2.gpx" )
170+
171+ // check basic exercise data
172+ assertEquals(EVExercise .ExerciseFileType .GPX , exercise.fileType)
173+ assertEquals(" Garmin GPX" , exercise.deviceName)
174+ assertEquals(EVExercise .DYNAMIC_RECORDING_INTERVAL , exercise.recordingInterval)
175+ assertTrue(exercise.recordingMode.isHeartRate)
176+ assertTrue(exercise.recordingMode.isAltitude)
177+ assertTrue(exercise.recordingMode.isSpeed)
178+ assertTrue(exercise.recordingMode.isHeartRate)
179+ assertFalse(exercise.recordingMode.isCadence)
180+ assertFalse(exercise.recordingMode.isPower)
181+ assertFalse(exercise.recordingMode.isTemperature)
182+ assertTrue(exercise.recordingMode.isLocation)
183+ assertFalse(exercise.recordingMode.isIntervalExercise)
184+
185+ // Check exercise time and duration
186+ assertEquals(LocalDateTime .of(2012 , 3 , 2 , 6 , 53 , 51 ), exercise.dateTime)
187+ assertEquals(6090 , exercise.duration)
188+
189+ // check altitude data
190+ assertEquals(32 .toShort(), exercise.altitude!! .altitudeMin)
191+ assertEquals(41 .toShort(), exercise.altitude!! .altitudeAvg)
192+ assertEquals(53 .toShort(), exercise.altitude!! .altitudeMax)
193+ assertEquals(41 , exercise.altitude!! .ascent)
194+
195+ // check speed summary data
196+ assertEquals(37.978153f , exercise.speed!! .speedMax)
197+ assertEquals(4494 , exercise.speed!! .distance)
198+ assertEquals(26.565517f , exercise.speed!! .speedAvg)
199+
200+ // check heartRate data
201+ assertEquals(152 .toShort(), exercise.heartRateAVG)
202+ assertEquals(169 .toShort(), exercise.heartRateMax)
203+
204+ // check sample data
205+ assertEquals(204 , exercise.sampleList.size)
206+
207+ assertEquals(0L , exercise.sampleList[0 ].timestamp)
208+ assertEquals(50.823521 , exercise.sampleList[0 ].position!! .latitude, 0.00001 )
209+ assertEquals(4.672067 , exercise.sampleList[0 ].position!! .longitude, 0.00001 )
210+ assertEquals(52 .toShort(), exercise.sampleList[0 ].altitude)
211+ assertEquals(0f , exercise.sampleList[0 ].speed)
212+ assertEquals(158 .toShort(), exercise.sampleList[0 ].heartRate)
213+ assertNull(exercise.sampleList[0 ].cadence)
214+ assertEquals(0 , exercise.sampleList[0 ].distance)
215+
216+ assertEquals(303000L , exercise.sampleList[101 ].timestamp)
217+ assertEquals(50.816284 , exercise.sampleList[101 ].position!! .latitude, 0.00001 )
218+ assertEquals(4.65173 , exercise.sampleList[101 ].position!! .longitude, 0.00001 )
219+ assertEquals(45 .toShort(), exercise.sampleList[101 ].altitude)
220+ assertEquals(36.26108f , exercise.sampleList[101 ].speed)
221+ assertEquals(156 .toShort(), exercise.sampleList[101 ].heartRate)
222+
223+ assertEquals(609000L , exercise.sampleList[203 ].timestamp)
224+ assertEquals(50.802288 , exercise.sampleList[203 ].position!! .latitude, 0.00001 )
225+ assertEquals(4.639261 , exercise.sampleList[203 ].position!! .longitude, 0.00001 )
226+ assertEquals(33 .toShort(), exercise.sampleList[203 ].altitude)
227+ assertEquals(32.644943f , exercise.sampleList[203 ].speed)
228+ assertEquals(154 .toShort(), exercise.sampleList[203 ].heartRate)
229+ }
162230
163231 /* *
164232 * This test parses a GPX file for a bike tour created by Holux FunTrek 130 pro with heart rate monitor.
0 commit comments