diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2024-07-28 18:24:22 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2024-07-28 18:24:22 +0200 |
| commit | c3c8381b5d376263f4b14ea3e5328f7ab8ad2142 (patch) | |
| tree | 3365e8a1f8877c25084e7c86072617ff7f498716 /ride/ride.go | |
| parent | 406625f7074233b381c3e01de751250d05b04f9d (diff) | |
test: Add failing test for climb inside long false flat
Diffstat (limited to 'ride/ride.go')
| -rw-r--r-- | ride/ride.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/ride/ride.go b/ride/ride.go index 8206793..2f0b78b 100644 --- a/ride/ride.go +++ b/ride/ride.go @@ -44,3 +44,18 @@ func (r *Ride) String(climb Climb) string { score := Score(r.points, climb.start, climb.end) return fmt.Sprintf("%.1fkm-%.1fkm: %.1fkm at %.1f%% (%d pts - %s)", start.distance/1000, end.distance/1000, (end.distance-start.distance)/1000, Slope(start, end)*100, int(score), Category(score)) } + +func (r *Ride) ScoreFromKm(start, end float64) float64 { + i := 0 + j := 0 + for k, p := range r.points { + if i == 0 && p.distance >= start*1000 { + i = k + } + if j == 0 && p.distance >= end*1000 { + j = k + break + } + } + return Score(r.points, i, j) +} |