refactor test helper functions
parent
8213d072c1
commit
1a18adc6d0
|
@ -110,7 +110,7 @@ func TestSplitOuterMultipolygonWay1(t *testing.T) {
|
|||
{"osm_roads", 15002, Missing, nil},
|
||||
{"osm_landusages", -15001, "park", nil},
|
||||
})
|
||||
assertArea(t, checkElem{"osm_landusages", -15001, "park", nil}, 9816216452)
|
||||
assertGeomArea(t, checkElem{"osm_landusages", -15001, "park", nil}, 9816216452)
|
||||
}
|
||||
|
||||
func TestMergeOuterMultipolygonWay1(t *testing.T) {
|
||||
|
@ -119,7 +119,7 @@ func TestMergeOuterMultipolygonWay1(t *testing.T) {
|
|||
{"osm_landusages", -16001, "park", nil},
|
||||
{"osm_roads", 16002, "residential", nil},
|
||||
})
|
||||
assertArea(t, checkElem{"osm_landusages", -16001, "park", nil}, 12779350582)
|
||||
assertGeomArea(t, checkElem{"osm_landusages", -16001, "park", nil}, 12779350582)
|
||||
}
|
||||
|
||||
func TestBrokenMultipolygonWays(t *testing.T) {
|
||||
|
@ -246,7 +246,7 @@ func TestSingleNodeWaysNotInserted(t *testing.T) {
|
|||
|
||||
func TestPolygonWithDuplicateNodesIsValid(t *testing.T) {
|
||||
// Polygon with duplicate nodes is valid.
|
||||
assertValid(t, checkElem{"osm_landusages", 30005, "park", nil})
|
||||
assertGeomValid(t, checkElem{"osm_landusages", 30005, "park", nil})
|
||||
}
|
||||
|
||||
func TestIncompletePolygons(t *testing.T) {
|
||||
|
@ -300,45 +300,45 @@ func TestDuplicateIds(t *testing.T) {
|
|||
func TestRelationUpdatedByNode(t *testing.T) {
|
||||
// Relations was updated after modified node.
|
||||
|
||||
assertArea(t, checkElem{"osm_buildings", -52121, "yes", nil}, 13653930440.868315)
|
||||
assertGeomArea(t, checkElem{"osm_buildings", -52121, "yes", nil}, 13653930440.868315)
|
||||
}
|
||||
|
||||
func TestGeneralizedBananaPolygonIsValid(t *testing.T) {
|
||||
// Generalized polygons are valid.
|
||||
|
||||
assertValid(t, checkElem{"osm_landusages", 7101, Missing, nil})
|
||||
assertGeomValid(t, checkElem{"osm_landusages", 7101, Missing, nil})
|
||||
// simplified geometies are valid too
|
||||
assertValid(t, checkElem{"osm_landusages_gen0", 7101, Missing, nil})
|
||||
assertValid(t, checkElem{"osm_landusages_gen1", 7101, Missing, nil})
|
||||
assertGeomValid(t, checkElem{"osm_landusages_gen0", 7101, Missing, nil})
|
||||
assertGeomValid(t, checkElem{"osm_landusages_gen1", 7101, Missing, nil})
|
||||
}
|
||||
|
||||
func TestGeneralizedLinestringIsValid(t *testing.T) {
|
||||
// Generalized linestring is valid.
|
||||
|
||||
// geometry is not simple, but valid
|
||||
assertLength(t, checkElem{"osm_roads", 7201, "primary", nil}, 1243660.044819)
|
||||
assertGeomLength(t, checkElem{"osm_roads", 7201, "primary", nil}, 1243660.044819)
|
||||
if ts.g.IsSimple(ts.queryGeom(t, "osm_roads", 7201)) {
|
||||
t.Errorf("expected non-simple geometry for 7201")
|
||||
}
|
||||
// check that geometry 'survives' simplification
|
||||
assertLength(t, checkElem{"osm_roads_gen0", 7201, "primary", nil}, 1243660.044819)
|
||||
assertLength(t, checkElem{"osm_roads_gen1", 7201, "primary", nil}, 1243660.044819)
|
||||
assertGeomLength(t, checkElem{"osm_roads_gen0", 7201, "primary", nil}, 1243660.044819)
|
||||
assertGeomLength(t, checkElem{"osm_roads_gen1", 7201, "primary", nil}, 1243660.044819)
|
||||
}
|
||||
|
||||
func TestRingWithGap(t *testing.T) {
|
||||
// Multipolygon and way with gap (overlapping but different endpoints) gets closed
|
||||
assertValid(t, checkElem{"osm_landusages", -7301, Missing, nil})
|
||||
assertValid(t, checkElem{"osm_landusages", 7311, Missing, nil})
|
||||
assertGeomValid(t, checkElem{"osm_landusages", -7301, Missing, nil})
|
||||
assertGeomValid(t, checkElem{"osm_landusages", 7311, Missing, nil})
|
||||
}
|
||||
|
||||
func TestMultipolygonWithOpenRing(t *testing.T) {
|
||||
// Multipolygon is inserted even if there is an open ring/member
|
||||
assertValid(t, checkElem{"osm_landusages", -7401, Missing, nil})
|
||||
assertGeomValid(t, checkElem{"osm_landusages", -7401, Missing, nil})
|
||||
}
|
||||
|
||||
func TestUpdatedNodes1(t *testing.T) {
|
||||
// Zig-Zag line is inserted.
|
||||
assertLength(t, checkElem{"osm_roads", 60000, Missing, nil}, 14035.61150207768)
|
||||
assertGeomLength(t, checkElem{"osm_roads", 60000, Missing, nil}, 14035.61150207768)
|
||||
}
|
||||
|
||||
func TestUpdateNodeToCoord1(t *testing.T) {
|
||||
|
@ -473,8 +473,8 @@ func TestChangedHoleTags2(t *testing.T) {
|
|||
assertCachedWay(t, cache, 14001)
|
||||
assertCachedWay(t, cache, 14011)
|
||||
|
||||
assertArea(t, checkElem{"osm_waterareas", 14011, "water", nil}, 26672019779)
|
||||
assertArea(t, checkElem{"osm_landusages", -14001, "park", nil}, 10373697182)
|
||||
assertGeomArea(t, checkElem{"osm_waterareas", 14011, "water", nil}, 26672019779)
|
||||
assertGeomArea(t, checkElem{"osm_landusages", -14001, "park", nil}, 10373697182)
|
||||
}
|
||||
|
||||
func TestSplitOuterMultipolygonWay2(t *testing.T) {
|
||||
|
@ -493,7 +493,7 @@ func TestSplitOuterMultipolygonWay2(t *testing.T) {
|
|||
{"osm_landusages", 15001, Missing, nil},
|
||||
{"osm_roads", 15002, "residential", nil},
|
||||
})
|
||||
assertArea(t, checkElem{"osm_landusages", -15001, "park", nil}, 9816216452)
|
||||
assertGeomArea(t, checkElem{"osm_landusages", -15001, "park", nil}, 9816216452)
|
||||
}
|
||||
|
||||
func TestMergeOuterMultipolygonWay2(t *testing.T) {
|
||||
|
@ -522,7 +522,7 @@ func TestMergeOuterMultipolygonWay2(t *testing.T) {
|
|||
{"osm_landusages", 16001, Missing, nil},
|
||||
{"osm_roads", 16002, Missing, nil},
|
||||
})
|
||||
assertArea(t, checkElem{"osm_landusages", -16001, "park", nil}, 12779350582)
|
||||
assertGeomArea(t, checkElem{"osm_landusages", -16001, "park", nil}, 12779350582)
|
||||
}
|
||||
|
||||
func TestNodeWayRefAfterDelete2(t *testing.T) {
|
||||
|
@ -614,14 +614,14 @@ func TestDuplicateIds2(t *testing.T) {
|
|||
func TestRelationUpdatedByNode2(t *testing.T) {
|
||||
// Relations was updated after modified node.
|
||||
|
||||
assertArea(t, checkElem{"osm_buildings", -52121, "yes", nil}, 16276875196.653734)
|
||||
assertGeomArea(t, checkElem{"osm_buildings", -52121, "yes", nil}, 16276875196.653734)
|
||||
}
|
||||
|
||||
func TestUpdatedWay2(t *testing.T) {
|
||||
// All nodes of straightened way are updated.
|
||||
|
||||
// new length 0.1 degree
|
||||
assertLength(t, checkElem{"osm_roads", 60000, "park", nil}, 20037508.342789244/180.0/10.0)
|
||||
assertGeomLength(t, checkElem{"osm_roads", 60000, "park", nil}, 20037508.342789244/180.0/10.0)
|
||||
}
|
||||
|
||||
func TestUpdateNodeToCoord2(t *testing.T) {
|
||||
|
|
|
@ -193,16 +193,6 @@ type record struct {
|
|||
tags map[string]string
|
||||
}
|
||||
|
||||
func (s *importTestSuite) queryExists(t *testing.T, table string, id int64) bool {
|
||||
row := s.db.QueryRow(fmt.Sprintf(`SELECT EXISTS(SELECT * FROM "%s"."%s" WHERE osm_id=$1)`, dbschemaProduction, table), id)
|
||||
var exists bool
|
||||
if err := row.Scan(&exists); err != nil {
|
||||
t.Error(err)
|
||||
return false
|
||||
}
|
||||
return exists
|
||||
}
|
||||
|
||||
func (s *importTestSuite) query(t *testing.T, table string, id int64, keys []string) record {
|
||||
kv := make([]string, len(keys))
|
||||
for i, k := range keys {
|
||||
|
@ -315,7 +305,7 @@ func (s *importTestSuite) queryGeom(t *testing.T, table string, id int64) *geos.
|
|||
defer g.Finish()
|
||||
geom := g.FromWkt(r.wkt)
|
||||
if geom == nil {
|
||||
t.Fatalf("unable to read WKT for %s", id)
|
||||
t.Fatalf("unable to read WKT for %d", id)
|
||||
}
|
||||
return geom
|
||||
}
|
||||
|
@ -350,14 +340,6 @@ type checkElem struct {
|
|||
tags map[string]string
|
||||
}
|
||||
|
||||
func assertRecordsMissing(t *testing.T, elems []checkElem) {
|
||||
for _, e := range elems {
|
||||
if ts.queryExists(t, e.table, e.id) {
|
||||
t.Errorf("found %d in %d", e.id, e.table)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func assertRecords(t *testing.T, elems []checkElem) {
|
||||
for _, e := range elems {
|
||||
keys := make([]string, 0, len(e.tags))
|
||||
|
@ -402,14 +384,14 @@ func assertHstore(t *testing.T, elems []checkElem) {
|
|||
}
|
||||
}
|
||||
|
||||
func assertValid(t *testing.T, e checkElem) {
|
||||
func assertGeomValid(t *testing.T, e checkElem) {
|
||||
geom := ts.queryGeom(t, e.table, e.id)
|
||||
if !ts.g.IsValid(geom) {
|
||||
t.Fatalf("geometry of %d is invalid", e.id)
|
||||
}
|
||||
}
|
||||
|
||||
func assertArea(t *testing.T, e checkElem, expect float64) {
|
||||
func assertGeomArea(t *testing.T, e checkElem, expect float64) {
|
||||
geom := ts.queryGeom(t, e.table, e.id)
|
||||
if !ts.g.IsValid(geom) {
|
||||
t.Fatalf("geometry of %d is invalid", e.id)
|
||||
|
@ -420,7 +402,7 @@ func assertArea(t *testing.T, e checkElem, expect float64) {
|
|||
}
|
||||
}
|
||||
|
||||
func assertLength(t *testing.T, e checkElem, expect float64) {
|
||||
func assertGeomLength(t *testing.T, e checkElem, expect float64) {
|
||||
geom := ts.queryGeom(t, e.table, e.id)
|
||||
if !ts.g.IsValid(geom) {
|
||||
t.Fatalf("geometry of %d is invalid", e.id)
|
||||
|
|
Loading…
Reference in New Issue