aboutsummaryrefslogtreecommitdiff
path: root/rideanalysis
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-08-21 11:04:57 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-08-21 11:04:57 +0200
commitd26aa2dca1b14b7d52070825bfc73c5e8aed7a16 (patch)
tree5d2ad13f342316dcdb1258ecd8c6e739d9adf08d /rideanalysis
parent44f7333d9deef81d3468e20b378c63692a9406ec (diff)
refactor(ride,rideanalysis): replace magic numbers with named constants
Diffstat (limited to 'rideanalysis')
-rw-r--r--rideanalysis/analysis.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/rideanalysis/analysis.go b/rideanalysis/analysis.go
index 632f729..a4c319f 100644
--- a/rideanalysis/analysis.go
+++ b/rideanalysis/analysis.go
@@ -9,6 +9,13 @@ import (
"github.com/martinlehoux/biking_home/ride"
)
+const (
+ passMatchRadiusM = 300
+ passMatchElevationToleranceM = 50
+ passCrossingRadiusM = 100
+ passCrossingElevationToleranceM = 25
+)
+
type Result struct {
Climbs []AnalyzedClimb
Crossings []mountain_pass.Crossing
@@ -32,7 +39,7 @@ func Analyze(parsed ride.Ride, passes []mountain_pass.MountainPass, officialClim
}
for _, detectedClimb := range parsed.AllClimbs() {
displayClimb := detectedClimb
- if matchedPass, ok := mountain_pass.MatchClimb(displayClimb, passes, 300, 50); ok {
+ if matchedPass, ok := mountain_pass.MatchClimb(displayClimb, passes, passMatchRadiusM, passMatchElevationToleranceM); ok {
displayClimb.Name = matchedPass.Name
}
matchedOfficial, officialFound := official_climb.MatchClimb(parsed, detectedClimb, officialClimbs, matchPolicy)
@@ -51,7 +58,7 @@ func Analyze(parsed ride.Ride, passes []mountain_pass.MountainPass, officialClim
result.Climbs = append(result.Climbs, AnalyzedClimb{
Segment: displayClimb,
Name: displayClimb.Name,
- Category: ride.Category(cotacol),
+ Category: ride.CategoryOf(cotacol).String(),
DistanceM: displayClimb.EndDistanceM() - displayClimb.StartDistanceM(),
SlopePercent: ride.Slope(parsed, displayClimb.StartIndex(), displayClimb.EndIndex()) * 100,
Cotacol: cotacol,
@@ -59,7 +66,7 @@ func Analyze(parsed ride.Ride, passes []mountain_pass.MountainPass, officialClim
OfficialName: officialClimbName(matchedOfficial, officialFound),
})
}
- for _, crossing := range mountain_pass.DetectCrossings(parsed, passes, 100, 25) {
+ for _, crossing := range mountain_pass.DetectCrossings(parsed, passes, passCrossingRadiusM, passCrossingElevationToleranceM) {
result.Crossings = append(result.Crossings, crossing)
}
return result