diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-25 11:34:27 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-25 11:34:27 +0200 |
| commit | e54e2b313a37c2d2af4e3e537ad4e64e8c816e86 (patch) | |
| tree | 37eed4e86668f3854c9dacb0edf5d95e0efceaca | |
| parent | 708f5428968b7c1526f257b683d0146ef5dae418 (diff) | |
Remove per-index ride accessors now dead after the component migration
The DistanceM, ElevationM, Coord, Timestamp and optional metric index
accessors (HeartRateBpm, CadenceRpm, PowerW) are no longer used by any
production code now that algorithms and consumers read ride components.
Tests that asserted metric parsing and coordinates now read the component
slices (Distances, Coords, HeartRates, Cadences, Powers).
| -rw-r--r-- | official_climb/official_climb_test.go | 10 | ||||
| -rw-r--r-- | ride/parser_test.go | 36 | ||||
| -rw-r--r-- | ride/ride.go | 27 | ||||
| -rw-r--r-- | strava/sync_test.go | 14 | ||||
| -rw-r--r-- | web/server_test.go | 8 |
5 files changed, 35 insertions, 60 deletions
diff --git a/official_climb/official_climb_test.go b/official_climb/official_climb_test.go index 266581e..bd59efc 100644 --- a/official_climb/official_climb_test.go +++ b/official_climb/official_climb_test.go @@ -65,8 +65,8 @@ func TestMatchClimbMatchesWithoutDetectedClimb(t *testing.T) { ) official := official_climb.OfficialClimb{ Name: "On route", - StartCoord: parsed.Coord(1), - EndCoord: parsed.Coord(2), + StartCoord: parsed.Coords()[1], + EndCoord: parsed.Coords()[2], } matched, found := official_climb.MatchClimb(parsed.Coords(), official, official_climb.DefaultMatchRadiusM) require.True(t, found) @@ -111,8 +111,8 @@ func TestMatchClimbRejectsReversedEndpoints(t *testing.T) { ) official := official_climb.OfficialClimb{ Name: "Reversed", - StartCoord: parsed.Coord(2), - EndCoord: parsed.Coord(1), + StartCoord: parsed.Coords()[2], + EndCoord: parsed.Coords()[1], } _, found := official_climb.MatchClimb(parsed.Coords(), official, official_climb.DefaultMatchRadiusM) assert.False(t, found) @@ -133,7 +133,7 @@ func TestMatchClimbRejectsEndpointOutsideRadius(t *testing.T) { official := official_climb.OfficialClimb{ Name: "Too far", StartCoord: geodist.Coord{Lat: 43.09, Lon: 5.09}, - EndCoord: parsed.Coord(2), + EndCoord: parsed.Coords()[2], } _, found := official_climb.MatchClimb(parsed.Coords(), official, 10) assert.False(t, found) diff --git a/ride/parser_test.go b/ride/parser_test.go index c2d6719..d8ac4d6 100644 --- a/ride/parser_test.go +++ b/ride/parser_test.go @@ -24,7 +24,7 @@ func TestGPXRideParserSkipsStationaryPoints(t *testing.T) { parsed, err := (ride.GPXRideParser{}).Parse(strings.NewReader(data)) require.NoError(t, err) assert.Equal(t, 2, parsed.Len()) - assert.Greater(t, parsed.DistanceM(1), 0.0) + assert.Greater(t, parsed.Distances()[1], 0.0) } func TestGPXRideParserRejectsStationaryRide(t *testing.T) { @@ -57,15 +57,15 @@ func TestGPXRideParserReadsGarminMetrics(t *testing.T) { 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) + heartRates, ok := parsed.HeartRates() + require.True(t, ok) + assert.Equal(t, 92.0, heartRates[1]) + cadences, ok := parsed.Cadences() + require.True(t, ok) + assert.Equal(t, 72.0, cadences[1]) + powers, ok := parsed.Powers() + require.True(t, ok) + assert.Equal(t, 202.0, powers[1]) } func TestGPXRideParserDropsIncompleteMetricColumn(t *testing.T) { @@ -77,12 +77,12 @@ func TestGPXRideParserDropsIncompleteMetricColumn(t *testing.T) { 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) + _, ok := parsed.Cadences() + assert.False(t, ok) + heartRates, ok := parsed.HeartRates() + require.True(t, ok) + assert.Equal(t, 92.0, heartRates[1]) + powers, ok := parsed.Powers() + require.True(t, ok) + assert.Equal(t, 0.0, powers[1]) } diff --git a/ride/ride.go b/ride/ride.go index a694df9..1de8b07 100644 --- a/ride/ride.go +++ b/ride/ride.go @@ -59,26 +59,6 @@ func (r Ride) Cadences() ([]float64, bool) { return optionalComponent(r.cadences func (r Ride) HeartRates() ([]float64, bool) { return optionalComponent(r.heartRates) } -func (r Ride) DistanceM(i int) float64 { return r.distances[i] } - -func (r Ride) ElevationM(i int) float64 { return r.elevations[i] } - -func (r Ride) Coord(i int) geodist.Coord { return r.coords[i] } - -func (r Ride) Timestamp(i int) time.Time { return r.timestamps[i] } - -func (r Ride) HeartRateBpm(i int) (float64, bool) { - return optionalMetric(r.heartRates, i) -} - -func (r Ride) CadenceRpm(i int) (float64, bool) { - return optionalMetric(r.cadences, i) -} - -func (r Ride) PowerW(i int) (float64, bool) { - return optionalMetric(r.powers, i) -} - func optionalComponent(column []float64) ([]float64, bool) { if len(column) == 0 { return nil, false @@ -86,13 +66,6 @@ func optionalComponent(column []float64) ([]float64, bool) { return column, true } -func optionalMetric(column []float64, i int) (float64, bool) { - if len(column) == 0 { - return 0, false - } - return column[i], true -} - type RideParser interface { Parse(reader io.Reader) (Ride, error) } diff --git a/strava/sync_test.go b/strava/sync_test.go index 9223c95..abc3d0e 100644 --- a/strava/sync_test.go +++ b/strava/sync_test.go @@ -103,13 +103,15 @@ func TestGet(t *testing.T) { parsedRide, err := (ride.GPXRideParser{}).Parse(bytes.NewReader(gpxData)) require.NoError(t, err) assert.Equal(t, 2, parsedRide.Len()) - heartRateValue, found := parsedRide.HeartRateBpm(1) - require.True(t, found) + heartRates, ok := parsedRide.HeartRates() + require.True(t, ok) + heartRateValue := heartRates[1] assert.Equal(t, 91.0, heartRateValue) - _, found = parsedRide.CadenceRpm(0) - assert.False(t, found) - powerValue, found := parsedRide.PowerW(1) - require.True(t, found) + _, ok = parsedRide.Cadences() + assert.False(t, ok) + powers, ok := parsedRide.Powers() + require.True(t, ok) + powerValue := powers[1] assert.Equal(t, 0.0, powerValue) } diff --git a/web/server_test.go b/web/server_test.go index b3f6028..9ee578e 100644 --- a/web/server_test.go +++ b/web/server_test.go @@ -234,8 +234,8 @@ func TestBuildRideProfileIncludesOfficialClimbMatch(t *testing.T) { profile := buildRideProfile(parsed, nil, []official_climb.OfficialClimb{{ ID: 42, Name: "Col de Test", - StartCoord: parsed.Coord(0), - EndCoord: parsed.Coord(1), + StartCoord: parsed.Coords()[0], + EndCoord: parsed.Coords()[1], }}, official_climb.DefaultMatchPolicy()) require.Len(t, profile.Climbs, 1) @@ -256,8 +256,8 @@ func TestBuildRideProfileUsesOfficialClimbBoundaries(t *testing.T) { profile := buildRideProfile(parsed, nil, []official_climb.OfficialClimb{{ ID: 42, Name: "Col de Test", - StartCoord: parsed.Coord(0), - EndCoord: parsed.Coord(2), + StartCoord: parsed.Coords()[0], + EndCoord: parsed.Coords()[2], }}, official_climb.DefaultMatchPolicy()) require.Len(t, profile.Climbs, 1) |
