Skip to content

Commit 2bc90fc

Browse files
committed
Add more regression tests checking way_area calculation
1 parent aacdcf2 commit 2bc90fc

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

tests/regression.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,12 @@ def test_basic_polygon_area(self):
303303
"""SELECT round(sum(cast(ST_Area(way) as numeric)),0)
304304
FROM planet_osm_polygon""")
305305

306+
def test_basic_polygon_way_area(self):
307+
area = 1272140891 if self.use_lua_tagtransform else 1247245413
308+
self.assert_sql(area,
309+
"""SELECT round(sum(cast(way_area as numeric)), 0)
310+
FROM planet_osm_polygon""")
311+
306312
def test_basic_line_length(self):
307313
self.assert_sql(4211350,
308314
'SELECT round(sum(ST_Length(way))) FROM planet_osm_line')
@@ -420,6 +426,13 @@ def assert_sum_area(self, area, osm_id, k, v, name=None):
420426
sql += " AND name = '{}'".format(name)
421427
self.assert_sql(area, sql.format(osm_id, k, v, name))
422428

429+
def assert_sum_way_area(self, area, osm_id, k, v, name=None):
430+
sql = """SELECT round(sum(way_area::numeric), 0) FROM planet_osm_polygon
431+
WHERE osm_id = {} AND "{}" = '{}'"""
432+
if name is not None:
433+
sql += " AND name = '{}'".format(name)
434+
self.assert_sql(area, sql.format(osm_id, k, v, name))
435+
423436
def assert_num_rows(self, area, osm_id, k, v, name = None):
424437
sql = """SELECT count(*) FROM planet_osm_polygon
425438
WHERE osm_id = {} AND "{}" = '{}'"""
@@ -464,6 +477,9 @@ def test_multipolygon_two_holes_rings(self):
464477
def test_multipolygon_two_outer(self):
465478
self.assert_sum_area(17581, -13, 'landuse', 'farmland', 'Name_rel9')
466479

480+
def test_multipolygon_two_outer_way_area(self):
481+
self.assert_sum_way_area(17581, -13, 'landuse', 'farmland', 'Name_rel9')
482+
467483
def test_multipolygon_two_outer_num(self):
468484
if '-G' in self.extra_params:
469485
self.assert_num_geoms(2, -13, 'landuse', 'farmland', 'Name_rel9')
@@ -473,6 +489,9 @@ def test_multipolygon_two_outer_num(self):
473489
def test_nested_outer_ways_area(self):
474490
self.assert_sum_area(16169, -7, 'landuse', 'farmland', 'Name_rel15')
475491

492+
def test_nested_outer_ways_way_area(self):
493+
self.assert_sum_way_area(16169, -7, 'landuse', 'farmland', 'Name_rel15')
494+
476495
def test_nested_outer_ways_num(self):
477496
if '-G' in self.extra_params:
478497
self.assert_num_geoms(2, -7, 'landuse', 'farmland', 'Name_rel15')
@@ -505,10 +524,14 @@ def test_tags_on_outer_present(self):
505524
def test_tags_on_outer_absence_relation(self):
506525
self.assert_num_rows(0, -33, 'natural', 'water')
507526

508-
def test_tags_on_relation_includes_relatoin(self):
527+
def test_tags_on_relation_includes_relation(self):
509528
self.assert_sum_area(29155 if self.update else 68494,
510529
-29, 'natural', 'water')
511530

531+
def test_tags_on_relation_includes_relation_way_area(self):
532+
self.assert_sum_way_area(29155 if self.update else 68494,
533+
-29, 'natural', 'water')
534+
512535
def test_tags_relation_outer_1_absence(self):
513536
self.assert_count(0, 'planet_osm_polygon', where='osm_id = 109')
514537

@@ -527,12 +550,18 @@ def test_tags_relation_outer_2_presence_area(self):
527550
def test_tags_on_relation_and_way_relation_presence(self):
528551
self.assert_sum_area(10377, -39, 'landuse', 'forest')
529552

553+
def test_tags_on_relation_and_way_relation_presence_way_area(self):
554+
self.assert_sum_way_area(10378, -39, 'landuse', 'forest')
555+
530556
def test_tags_on_relation_and_way_way_presence(self):
531557
self.assert_count(1, 'planet_osm_polygon', where='osm_id = 138')
532558

533559
def test_different_tags_on_relation_and_way_relation_presence(self):
534560
self.assert_sum_area(12397, -40, 'landuse', 'forest')
535561

562+
def test_different_tags_on_relation_and_way_relation_presence_way_area(self):
563+
self.assert_sum_way_area(12397, -40, 'landuse', 'forest')
564+
536565
def test_different_tags_on_relation_and_way_way_presence(self):
537566
self.assert_count(1, 'planet_osm_polygon', where='osm_id = 140')
538567

0 commit comments

Comments
 (0)