From 862f71901c3e11f9d21a33b39a110357ccc6d4c4 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Thu, 20 Aug 2026 16:20:44 +0200 Subject: fix(ride): use effort metrics for moving time --- ride/moving_time_test.go | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'ride/moving_time_test.go') diff --git a/ride/moving_time_test.go b/ride/moving_time_test.go index 402726f..06f9998 100644 --- a/ride/moving_time_test.go +++ b/ride/moving_time_test.go @@ -1,6 +1,7 @@ package ride_test import ( + "fmt" "strings" "testing" "time" @@ -25,6 +26,17 @@ func trackPoint(lat, lon string, timestamp string) string { `` } +func metricTrackPoint(lat, lon, timestamp string, cadence, power int) string { + return `` + + `100` + + `` + + `` + + `` + fmt.Sprint(cadence) + `` + + `` + fmt.Sprint(power) + `` + + `` + + `` +} + func TestMovingTimeCountsSteadyRiding(t *testing.T) { parsed := gpxWithPoints(t, trackPoint("43.0", "5.0", "2026-01-01T10:00:00Z")+ @@ -55,6 +67,20 @@ func TestMovingTimeExcludesLunchBreak(t *testing.T) { assert.Equal(t, time.Minute, ride.MovingTime(parsed)) } +func TestMovingTimeCountsEffortMetricsWhenGPSSpeedIsLow(t *testing.T) { + data := parserTestGPXMetricsPrefix + + metricTrackPoint("43.0", "5.0", "2026-01-01T10:00:00Z", 0, 0) + + metricTrackPoint("43.000001", "5.0", "2026-01-01T10:01:00Z", 80, 0) + + metricTrackPoint("43.000002", "5.0", "2026-01-01T10:02:00Z", 0, 50) + + metricTrackPoint("43.000003", "5.0", "2026-01-01T10:03:00Z", 0, 10) + + metricTrackPoint("43.000004", "5.0", "2026-01-01T10:04:00Z", 0, 0) + + parserTestGPXSuffix + parsed, err := (ride.GPXRideParser{}).Parse(strings.NewReader(data)) + require.NoError(t, err) + + assert.Equal(t, 2*time.Minute, ride.MovingTime(parsed)) +} + func TestMovingTimeWithoutTimestamps(t *testing.T) { data := parserTestGPXPrefix + `100` + @@ -68,5 +94,5 @@ func TestMovingTimeWithoutTimestamps(t *testing.T) { } func TestMovingTimeAlgorithmVersion(t *testing.T) { - assert.Equal(t, "v1", ride.MovingTimeAlgorithmVersion) -} \ No newline at end of file + assert.Equal(t, "v2", ride.MovingTimeAlgorithmVersion) +} -- cgit v1.3