summaryrefslogtreecommitdiff
path: root/ride
diff options
context:
space:
mode:
Diffstat (limited to 'ride')
-rw-r--r--ride/climb.go7
-rw-r--r--ride/climb_test.go11
2 files changed, 13 insertions, 5 deletions
diff --git a/ride/climb.go b/ride/climb.go
index 3b3d6dc..cff2b39 100644
--- a/ride/climb.go
+++ b/ride/climb.go
@@ -79,6 +79,13 @@ func bestClimbBetween(points []Point, start int, end int) Climb {
bestScore = score
}
}
+ for i := bestStart; i < bestEnd; i++ {
+ score := Score(points, i, bestEnd)
+ if score > bestScore {
+ bestStart = i
+ bestScore = score
+ }
+ }
climb := Climb{bestStart, bestEnd}
kcore.Assert(climb.start < climb.end, "empty climb")
diff --git a/ride/climb_test.go b/ride/climb_test.go
index 23c7a2e..65b6b54 100644
--- a/ride/climb_test.go
+++ b/ride/climb_test.go
@@ -80,10 +80,11 @@ func TestPogacar20220721(t *testing.T) {
r := ride.FromGPX(gpxContent)
climbs := r.AllClimbs()
- assert.Len(t, climbs, 5)
+ assert.Len(t, climbs, 6)
assert.Equal(t, "0.6km-5.6km: 5.0km at 3.5% (62 pts - Cat 4)", r.String(climbs[0]))
- assert.Equal(t, "60.0km-76.4km: 16.4km at 7.2% (854 pts - HC)", r.String(climbs[1]))
- assert.Equal(t, "83.8km-85.9km: 2.0km at 5.4% (59 pts - Cat 4)", r.String(climbs[2]))
- assert.Equal(t, "99.2km-109.3km: 10.2km at 8.4% (710 pts - HC)", r.String(climbs[3]))
- assert.Equal(t, "128.6km-142.2km: 13.6km at 7.8% (832 pts - HC)", r.String(climbs[4]))
+ assert.Equal(t, "42.9km-45.2km: 2.3km at 5.0% (59 pts - Cat 4)", r.String(climbs[1]))
+ assert.Equal(t, "60.0km-76.4km: 16.4km at 7.2% (854 pts - HC)", r.String(climbs[2]))
+ assert.Equal(t, "83.8km-85.9km: 2.0km at 5.4% (59 pts - Cat 4)", r.String(climbs[3]))
+ assert.Equal(t, "99.2km-109.3km: 10.2km at 8.4% (710 pts - HC)", r.String(climbs[4]))
+ assert.Equal(t, "128.6km-142.2km: 13.6km at 7.8% (832 pts - HC)", r.String(climbs[5]))
}