aboutsummaryrefslogtreecommitdiff
path: root/mountain_pass/detection_test.go
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-08-21 10:30:27 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-08-21 10:30:27 +0200
commit44f7333d9deef81d3468e20b378c63692a9406ec (patch)
treeaeacb99247dba4e48ee61e2792f5476a3770795a /mountain_pass/detection_test.go
parent6667ee479c06c14bb182f36a0a9ee704fca6218d (diff)
Use OSM as the single source of mountain passes
Replace the centcols CSV download/enrichment pipeline with OSM PBF extraction as the primary (only) source: merge osmpass into mountain_pass, drop the centcols table and model fields, filter to named passes with elevation, and remove the centcols CLI flags.
Diffstat (limited to 'mountain_pass/detection_test.go')
-rw-r--r--mountain_pass/detection_test.go36
1 files changed, 29 insertions, 7 deletions
diff --git a/mountain_pass/detection_test.go b/mountain_pass/detection_test.go
index d86e67b..f55532b 100644
--- a/mountain_pass/detection_test.go
+++ b/mountain_pass/detection_test.go
@@ -28,14 +28,15 @@ func TestDetectCrossingsFindsPass(t *testing.T) {
func TestLoadMountainPassesAroundRideUsesExpandedBounds(t *testing.T) {
db := dbtest.New(t)
_, err := db.Exec(`
- INSERT INTO mountain_passes (external_id, name, country_code, department_code, elevation, latitude, longitude)
- VALUES (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?), (?, ?, ?, ?, ?, ?, ?)
+ INSERT INTO mountain_passes (osm_id, name, elevation, latitude, longitude)
+ VALUES (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?)
`,
- "550e8400-e29b-41d4-a716-446655440000", "On route", "FR", "13", 400, 43.05, 5.05,
- "6ba7b810-9dad-41d1-80b4-00c04fd430c8", "Within margin", "FR", "13", 500, 43.18, 5.20,
- "6ba7b811-9dad-41d1-80b4-00c04fd430c8", "Outside margin", "FR", "13", 600, 43.21, 5.20,
- "6ba7b812-9dad-41d1-80b4-00c04fd430c8", "Missing coordinates", "FR", "13", 700, nil, nil,
- "6ba7b813-9dad-41d1-80b4-00c04fd430c8", "On route edge", "FR", "13", 300, 43.10, 5.10,
+ 1, "On route", 400, 43.05, 5.05,
+ 2, "Within margin", 500, 43.18, 5.20,
+ 3, "Outside margin", 600, 43.21, 5.20,
+ 4, "No elevation", nil, 43.19, 5.20,
+ 5, "", 700, 43.17, 5.20,
+ 6, "On route edge", 300, 43.10, 5.10,
)
require.NoError(t, err)
@@ -53,6 +54,27 @@ func TestLoadMountainPassesAroundRideUsesExpandedBounds(t *testing.T) {
assert.Contains(t, []string{passes[1].Name, passes[2].Name}, "Within margin")
}
+func TestLoadMountainPassesFiltersElevationAndName(t *testing.T) {
+ db := dbtest.New(t)
+ _, err := db.Exec(`
+ INSERT INTO mountain_passes (osm_id, name, elevation, latitude, longitude)
+ VALUES (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?)
+ `,
+ 1, "Named pass", 400, 43.05, 5.05,
+ 2, "No elevation", nil, 43.06, 5.06,
+ 3, "", 300, 43.07, 5.07,
+ 4, "No name or elevation", nil, 43.08, 5.08,
+ )
+ require.NoError(t, err)
+
+ passes, err := mountain_pass.LoadMountainPasses(db)
+ require.NoError(t, err)
+ require.Len(t, passes, 1)
+ assert.Equal(t, "Named pass", passes[0].Name)
+ assert.Equal(t, 400, passes[0].Elevation)
+ assert.NotNil(t, passes[0].Coord)
+}
+
func TestDetectCrossingsIgnoresDistantPass(t *testing.T) {
r := rideFromPoint(t, 43.62, 5.43, 447)
far := mountain_pass.MountainPass{