From 5b74dc4321e63f251190a975b151875b64656c56 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Fri, 7 Aug 2026 16:52:44 +0200 Subject: feat: Add Strava stream metrics --- ride/parser_test.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'ride/parser_test.go') diff --git a/ride/parser_test.go b/ride/parser_test.go index 96c837e..c2d6719 100644 --- a/ride/parser_test.go +++ b/ride/parser_test.go @@ -11,6 +11,7 @@ import ( const parserTestGPXPrefix = `` const parserTestGPXSuffix = `` +const parserTestGPXMetricsPrefix = `` func TestGPXRideParserSkipsStationaryPoints(t *testing.T) { data := parserTestGPXPrefix + @@ -44,3 +45,44 @@ func TestGPXRideParserRejectsEmptyTrack(t *testing.T) { require.Error(t, err) assert.Equal(t, "ride has no track points", err.Error()) } + +func TestGPXRideParserReadsGarminMetrics(t *testing.T) { + data := parserTestGPXMetricsPrefix + + `1009070200` + + `1019171201` + + `1029272202` + + parserTestGPXSuffix + + parsed, err := (ride.GPXRideParser{}).Parse(strings.NewReader(data)) + require.NoError(t, err) + assert.Equal(t, 2, parsed.Len()) + + heartRate, found := parsed.HeartRateBpm(1) + require.True(t, found) + assert.Equal(t, 92.0, heartRate) + cadence, found := parsed.CadenceRpm(1) + require.True(t, found) + assert.Equal(t, 72.0, cadence) + power, found := parsed.PowerW(1) + require.True(t, found) + assert.Equal(t, 202.0, power) +} + +func TestGPXRideParserDropsIncompleteMetricColumn(t *testing.T) { + data := parserTestGPXMetricsPrefix + + `1009070200` + + `102920` + + parserTestGPXSuffix + + parsed, err := (ride.GPXRideParser{}).Parse(strings.NewReader(data)) + require.NoError(t, err) + + _, found := parsed.CadenceRpm(0) + assert.False(t, found) + heartRate, found := parsed.HeartRateBpm(1) + require.True(t, found) + assert.Equal(t, 92.0, heartRate) + power, found := parsed.PowerW(1) + require.True(t, found) + assert.Equal(t, 0.0, power) +} -- cgit v1.2.3