aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--official_climb/official_climb_test.go10
-rw-r--r--ride/parser_test.go36
-rw-r--r--ride/ride.go27
-rw-r--r--strava/sync_test.go14
-rw-r--r--web/server_test.go8
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)