From 1a18adc6d0ab7dfbdc69571e08e2919edb70f590 Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Wed, 15 Jun 2016 14:09:05 +0200 Subject: [PATCH] refactor test helper functions --- test/completedb_test.go | 40 ++++++++++++++++++++-------------------- test/helper_test.go | 26 ++++---------------------- 2 files changed, 24 insertions(+), 42 deletions(-) diff --git a/test/completedb_test.go b/test/completedb_test.go index 6b6b794..8204996 100644 --- a/test/completedb_test.go +++ b/test/completedb_test.go @@ -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) { diff --git a/test/helper_test.go b/test/helper_test.go index c29466e..ce1c7d7 100644 --- a/test/helper_test.go +++ b/test/helper_test.go @@ -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)