aboutsummaryrefslogtreecommitdiff
path: root/osmpass/enrich_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'osmpass/enrich_test.go')
-rw-r--r--osmpass/enrich_test.go149
1 files changed, 0 insertions, 149 deletions
diff --git a/osmpass/enrich_test.go b/osmpass/enrich_test.go
deleted file mode 100644
index 88c6a3f..0000000
--- a/osmpass/enrich_test.go
+++ /dev/null
@@ -1,149 +0,0 @@
-package osmpass
-
-import (
- "database/sql"
- "testing"
-
- _ "github.com/mattn/go-sqlite3"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-)
-
-func TestNormalizeName(t *testing.T) {
- assert.Equal(t, "col du telegraphe", normalizeName("Col du Télégraphe"))
- assert.Equal(t, "col de la gineste", normalizeName("Col de la Gineste"))
- assert.Equal(t, normalizeName("Col de la Gineste"), normalizeName("col de la gineste"))
- assert.True(t, nameMatches("Col de la Lombarde", "Col de la Lombarde / Colle della Lombarda"))
- assert.False(t, nameMatches("Col de la Gatasse", "Col de la Gatasso"))
-}
-
-func TestEnrichMountainPasses(t *testing.T) {
- db := testDB(t, `
- CREATE TABLE osm_passes (
- osm_id integer unique not null,
- name text,
- elevation integer,
- latitude real not null,
- longitude real not null
- );
- CREATE TABLE mountain_passes (
- external_id text unique not null,
- name text not null,
- department_code text not null,
- elevation integer not null,
- latitude real,
- longitude real
- );
- `)
-
- insert(t, db, "INSERT INTO osm_passes VALUES (1, 'Col de la Gineste', 327, 43.2, 5.4)")
- insert(t, db, "INSERT INTO osm_passes VALUES (2, 'Col de la Couillole', 1678, 44.1, 7.0)")
- insert(t, db, "INSERT INTO osm_passes VALUES (3, 'Col de la Gatasso', 122, 43.3, 5.5)")
- insert(t, db, "INSERT INTO osm_passes VALUES (4, 'Col des Portes', NULL, 43.6, 5.8)")
-
- insert(t, db, "INSERT INTO mountain_passes VALUES ('c/1', 'Col de la Gineste', '13', 326, NULL, NULL)")
- insert(t, db, "INSERT INTO mountain_passes VALUES ('c/2', 'Col de la Gatasse', '13', 120, NULL, NULL)")
- insert(t, db, "INSERT INTO mountain_passes VALUES ('c/3', 'Col inconnu', '13', 999, NULL, NULL)")
-
- count, err := EnrichMountainPasses(db)
- require.NoError(t, err)
- assert.Equal(t, 2, count)
-
- var latitude, longitude float64
- err = db.QueryRow("SELECT latitude, longitude FROM mountain_passes WHERE external_id = 'c/1'").Scan(&latitude, &longitude)
- require.NoError(t, err)
- assert.InDelta(t, 43.2, latitude, 1e-9)
- assert.InDelta(t, 5.4, longitude, 1e-9)
-
- err = db.QueryRow("SELECT latitude, longitude FROM mountain_passes WHERE external_id = 'c/2'").Scan(&latitude, &longitude)
- require.NoError(t, err)
- assert.InDelta(t, 43.3, latitude, 1e-9)
- assert.InDelta(t, 5.5, longitude, 1e-9)
-
- var isNull bool
- err = db.QueryRow("SELECT latitude IS NULL FROM mountain_passes WHERE external_id = 'c/3'").Scan(&isNull)
- require.NoError(t, err)
- assert.True(t, isNull)
-}
-
-func TestEnrichMountainPassesAmbiguousElevationOnly(t *testing.T) {
- db := testDB(t, `
- CREATE TABLE osm_passes (
- osm_id integer unique not null,
- name text,
- elevation integer,
- latitude real not null,
- longitude real not null
- );
- CREATE TABLE mountain_passes (
- external_id text unique not null,
- name text not null,
- department_code text not null,
- elevation integer not null,
- latitude real,
- longitude real
- );
- `)
-
- insert(t, db, "INSERT INTO osm_passes VALUES (1, 'Autre Col A', 122, 43.3, 5.5)")
- insert(t, db, "INSERT INTO osm_passes VALUES (2, 'Autre Col B', 130, 43.5, 5.7)")
-
- insert(t, db, "INSERT INTO mountain_passes VALUES ('c/1', 'Col de la Gatasse', '13', 120, NULL, NULL)")
-
- count, err := EnrichMountainPasses(db)
- require.NoError(t, err)
- assert.Zero(t, count)
-
- var isNull bool
- err = db.QueryRow("SELECT latitude IS NULL FROM mountain_passes WHERE external_id = 'c/1'").Scan(&isNull)
- require.NoError(t, err)
- assert.True(t, isNull)
-}
-
-func TestEnrichMountainPassesRejectsCrossDepartmentHomonym(t *testing.T) {
- db := testDB(t, `
- CREATE TABLE osm_passes (
- osm_id integer unique not null,
- name text,
- elevation integer,
- latitude real not null,
- longitude real not null
- );
- CREATE TABLE mountain_passes (
- external_id text unique not null,
- name text not null,
- department_code text not null,
- elevation integer not null,
- latitude real,
- longitude real
- );
- `)
-
- insert(t, db, "INSERT INTO osm_passes VALUES (1, 'Collet de la Selle', 1178, 43.77, 6.81)")
-
- insert(t, db, "INSERT INTO mountain_passes VALUES ('c/1', 'La Selle', '01', 1175, NULL, NULL)")
-
- count, err := EnrichMountainPasses(db)
- require.NoError(t, err)
- assert.Zero(t, count)
-
- var isNull bool
- err = db.QueryRow("SELECT latitude IS NULL FROM mountain_passes WHERE external_id = 'c/1'").Scan(&isNull)
- require.NoError(t, err)
- assert.True(t, isNull)
-}
-
-func testDB(t *testing.T, schema string) *sql.DB {
- db, err := sql.Open("sqlite3", ":memory:")
- require.NoError(t, err)
- db.SetMaxOpenConns(1)
- t.Cleanup(func() { db.Close() })
- _, err = db.Exec(schema)
- require.NoError(t, err)
- return db
-}
-
-func insert(t *testing.T, db *sql.DB, query string) {
- _, err := db.Exec(query)
- require.NoError(t, err)
-}