@@ -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