Ignore:
Timestamp:
Jan 6, 2009, 4:26:24 PM (15 years ago)
Author:
ole
Message:

Added functionality to read multiple polygons with associated values from
a single csv file.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/shallow_water/test_data_manager.py

    r6086 r6120  
    1104211042        assert (polygon == [[0.0, 0.0],[1.0, 0.0],[0.0, 1.0]])
    1104311043       
    11044 
    11045 
    11046 
     11044   
     11045    def test_csv2polygons(self):
     11046        """test_csv2polygons
     11047        """
     11048       
     11049        path = get_pathname_from_package('anuga.shallow_water')               
     11050        testfile = os.path.join(path, 'polygon_values_example.csv')               
     11051
     11052        polygons, values = csv2polygons(testfile,
     11053                                        value_name='floors')
     11054
     11055        assert len(polygons) == 7, 'Must have seven polygons'
     11056        assert len(values) == 7, 'Must have seven values'
     11057           
     11058        # Known floor values
     11059        floors = {'1': 2, '2': 0, '3': 1, '4': 2, '5': 0, '8': 1, '9': 1}
     11060       
     11061        # Known polygon values
     11062        known_polys = {'1': [[422681.61,871117.55],
     11063                             [422691.02,871117.60],
     11064                             [422690.87,871084.23],
     11065                             [422649.36,871081.85],
     11066                             [422649.36,871080.39],
     11067                             [422631.86,871079.50],
     11068                             [422631.72,871086.75],
     11069                             [422636.75,871087.20],
     11070                             [422636.75,871091.50],
     11071                             [422649.66,871092.09],
     11072                             [422649.83,871084.91],
     11073                             [422652.94,871084.90],
     11074                             [422652.84,871092.39],
     11075                             [422681.83,871093.73],
     11076                             [422681.61,871117.55]],
     11077                       '2': [[422664.22,870785.46],
     11078                             [422672.48,870780.14],
     11079                             [422668.17,870772.62],
     11080                             [422660.35,870777.17],
     11081                             [422664.22,870785.46]],
     11082                       '3': [[422661.30,871215.06],
     11083                             [422667.50,871215.70],
     11084                             [422668.30,871204.86],
     11085                             [422662.21,871204.33],
     11086                             [422661.30,871215.06]],
     11087                       '4': [[422473.44,871191.22],
     11088                             [422478.33,871192.26],
     11089                             [422479.52,871186.03],
     11090                             [422474.78,871185.14],
     11091                             [422473.44,871191.22]],
     11092                       '5': [[422369.69,871049.29],
     11093                             [422378.63,871053.58],
     11094                             [422383.91,871044.51],
     11095                             [422374.97,871040.32],
     11096                             [422369.69,871049.29]],
     11097                       '8': [[422730.56,871203.13],
     11098                             [422734.10,871204.90],
     11099                             [422735.26,871202.18],
     11100                             [422731.87,871200.58],
     11101                             [422730.56,871203.13]],
     11102                       '9': [[422659.85,871213.80],
     11103                             [422660.91,871210.97],
     11104                             [422655.42,871208.85],
     11105                             [422654.36,871211.68],
     11106                             [422659.85,871213.80]]
     11107                       }       
     11108       
     11109
     11110       
     11111               
     11112        for id in ['1', '2', '3', '4', '5' ,'8' ,'9']:
     11113            assert id in polygons.keys()
     11114            assert id in values.keys()           
     11115
     11116            assert int(values[id]) == int(floors[id])
     11117            assert len(polygons[id]) == len(known_polys[id])
     11118            assert allclose(polygons[id], known_polys[id])
     11119
     11120
     11121   
     11122    def test_csv2building_polygons(self):
     11123        """test_csv2building_polygons
     11124        """
     11125       
     11126        path = get_pathname_from_package('anuga.shallow_water')               
     11127        testfile = os.path.join(path, 'polygon_values_example.csv')               
     11128
     11129        polygons, values = csv2building_polygons(testfile,
     11130                                                 floor_height=3)
     11131
     11132        assert len(polygons) == 7, 'Must have seven polygons'
     11133        assert len(values) == 7, 'Must have seven values'
     11134           
     11135        # Known floor values
     11136        floors = {'1': 6, '2': 0, '3': 3, '4': 6, '5': 0, '8': 3, '9': 3}
     11137       
     11138               
     11139        for id in ['1', '2', '3', '4', '5' ,'8' ,'9']:
     11140            assert id in polygons.keys()
     11141            assert id in values.keys()           
     11142
     11143            assert float(values[id]) == float(floors[id])
     11144
     11145           
     11146           
    1104711147#-------------------------------------------------------------
    1104811148if __name__ == "__main__":
    1104911149
    1105011150    suite = unittest.makeSuite(Test_Data_Manager,'test')
    11051 #    suite = unittest.makeSuite(Test_Data_Manager,'test_export_gridIII')
    1105211151    #suite = unittest.makeSuite(Test_Data_Manager,'test_file_boundary_stsIV_sinewave_ordering')
    1105311152    #suite = unittest.makeSuite(Test_Data_Manager,'test_get_flow_through_cross_section_with_geo')
Note: See TracChangeset for help on using the changeset viewer.