Ignore:
Timestamp:
May 19, 2006, 5:29:13 PM (19 years ago)
Author:
nick
Message:

geospatial_data object updated so not to use dictionaries

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inundation/geospatial_data/test_geospatial_data.py

    r2890 r2928  
    3653651.0, 0.0, 10.4, 40.0\n")
    366366        file.close()
    367         #print fileName
    368         dict = import_points_file(fileName,delimiter = ',')
    369         dict = import_points_file(fileName,delimiter = ',')
    370         os.remove(fileName)
    371         assert allclose(dict['pointlist'], [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    372         assert allclose(dict['attributelist']['elevation'], [10.0, 0.0, 10.4])
    373         assert allclose(dict['attributelist']['speed'], [0.0, 10.0, 40.0])
     367        results = Geospatial_data(fileName, delimiter = ',')
     368        os.remove(fileName)
     369#        print 'data', results.get_data_points()
     370        assert allclose(results.get_data_points(), [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     371        assert allclose(results.get_attributes(attribute_name = 'elevation'), [10.0, 0.0, 10.4])
     372        assert allclose(results.get_attributes(attribute_name = 'speed'), [0.0, 10.0, 40.0])
    374373
    375374    def test_loadxya2(self):
     
    3863851.0 0.0 10.4 40.0\n")
    387386        file.close()
    388         #print fileName
    389 #        dict = import_points_file(fileName,delimiter = ' ')
    390         dict = import_points_file(fileName,delimiter = ' ')
    391         os.remove(fileName)
    392         assert allclose(dict['pointlist'], [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    393         assert allclose(dict['attributelist']['elevation'], [10.0, 0.0, 10.4])
    394         assert allclose(dict['attributelist']['speed'], [0.0, 10.0, 40.0])
     387
     388        results = Geospatial_data(fileName, delimiter = ' ')
     389
     390        os.remove(fileName)
     391
     392        assert allclose(results.get_data_points(), [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     393        assert allclose(results.get_attributes(attribute_name = 'elevation'), [10.0, 0.0, 10.4])
     394        assert allclose(results.get_attributes(attribute_name = 'speed'), [0.0, 10.0, 40.0])
    395395     
    396396    def test_loadxya3(self):
     
    4114113\n")
    412412        file.close()
    413         #print fileName
    414         dict = import_points_file(fileName,delimiter = ' ')
    415         os.remove(fileName)
    416         assert allclose(dict['pointlist'], [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    417         assert allclose(dict['attributelist']['elevation'], [10.0, 0.0, 10.4])
    418         assert allclose(dict['attributelist']['speed'], [0.0, 10.0, 40.0])
    419 
    420     def test_loadxy_bad_no_file_xya(self):
    421         import os
    422        
    423         fileName = tempfile.mktemp(".xya")
    424         #print fileName
    425         try:
    426             dict = import_points_file(fileName,delimiter = ' ')
    427         except IOError:
    428             pass
    429         else:
    430             self.failUnless(0 ==1,
    431                         'imaginary file did not raise error!')
    432  
     413
     414        results = Geospatial_data(fileName, delimiter = ' ')
     415
     416        os.remove(fileName)
     417        assert allclose(results.get_data_points(absolute = False), [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     418        assert allclose(results.get_attributes(attribute_name = 'elevation'), [10.0, 0.0, 10.4])
     419        assert allclose(results.get_attributes(attribute_name = 'speed'), [0.0, 10.0, 40.0])
     420
    433421    def test_read_write_points_file_bad2(self):
    434 #        dict = {}
    435422        att_dict = {}
    436423        pointlist = array([[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    437424        att_dict['elevation'] = array([10.0, 0.0, 10.4])
    438425        att_dict['brightness'] = array([10.0, 0.0, 10.4])
    439 #        dict['attributelist'] = att_dict
    440426        geo_reference = Geo_reference(56,1.9,1.9)
    441427       
     
    448434            pass
    449435        else:
    450             self.failUnless(0 == 1,
    451                         'bad points file extension did not raise error!')
     436            msg = 'bad points file extension did not raise error!'
     437            raise msg
     438#            self.failUnless(0 == 1,
     439#                        'bad points file extension did not raise error!')
    452440                   
    453441    def test_loadxy_bad(self):
     
    463451        #print fileName
    464452        try:
    465             dict = import_points_file(fileName,delimiter = ' ')
     453            results = Geospatial_data(fileName, delimiter = ' ')
    466454        except IOError:
    467455            pass
    468456        else:
    469             self.failUnless(0 ==1,
    470                         'bad xya file did not raise error!')
     457            msg = 'bad xya file did not raise error!'
     458            raise msg
     459#            self.failUnless(0 == 1,
     460#                        'bad xya file did not raise error!')
    471461        os.remove(fileName)
    472462       
     
    483473        #print fileName
    484474        try:
    485             dict = import_points_file(fileName,delimiter = ' ')
     475            results = Geospatial_data(fileName, delimiter = ' ')
    486476        except IOError:
    487477            pass
    488478        else:
    489             self.failUnless(0 ==1,
    490                         'bad xya file did not raise error!')   
     479            msg = 'bad xya file did not raise error!'
     480            raise msg
    491481        os.remove(fileName)
    492482   
     
    505495        file.close()
    506496        try:
    507             dict = import_points_file(fileName,delimiter = ' ')
     497            results = Geospatial_data(fileName, delimiter = ' ')
    508498        except IOError:
    509499            pass
    510500        else:
    511             self.failUnless(0 ==1,
    512                         'bad xya file did not raise error!')   
     501            msg = 'bad xya file did not raise error!'
     502            raise msg
    513503        os.remove(fileName)
    514504     
    515     def test_loadxy_bad4(self):
    516         """
    517         specifying wrong delimiter
    518         """
    519         import os
    520        
    521         fileName = tempfile.mktemp(".xya")
    522         file = open(fileName,"w")
    523         file.write("  elevation   speed \n\
    524 1.0 0.0 10.0 0.0\n\
    525 0.0 1.0 0.0 10.0\n\
    526 1.0 0.0 10.4 40.0\n\
    527 yeah")
    528         file.close()
    529         try:
    530             dict = import_points_file(fileName,delimiter = ' ')
    531         except IOError:
    532             pass
    533         else:
    534             self.failUnless(0 ==1,
    535                         'bad xya file did not raise error!')   
    536         os.remove(fileName)
    537  
    538505    def test_loadxy_bad4(self):
    539506        """
     
    551518        file.close()
    552519        try:
    553             dict = import_points_file(fileName,delimiter = ' ')
     520#            dict = import_points_file(fileName,delimiter = ' ')
     521#            results = Geospatial_data()
     522            results = Geospatial_data(fileName, delimiter = ',')
     523#            results.import_points_file(fileName, delimiter = ' ')
    554524        except IOError:
    555525            pass
    556526        else:
    557             self.failUnless(0 ==1,
    558                         'bad xya file did not raise error!')   
     527            msg = 'bad xya file did not raise error!'
     528            raise msg
     529
     530#            self.failUnless(0 ==1,
     531#                        'bad xya file did not raise error!')   
    559532        os.remove(fileName)
    560533
     
    575548        file.close()
    576549        try:
    577             dict = import_points_file(fileName,delimiter = ' ')
     550#            dict = import_points_file(fileName,delimiter = ' ')
     551#            results = Geospatial_data()
     552            results = Geospatial_data(fileName, delimiter = ' ')
     553#            results.import_points_file(fileName, delimiter = ' ')
    578554        except IOError:
    579555            pass
    580556        else:
    581             self.failUnless(0 ==1,
    582                         'bad xya file did not raise error!')   
     557            msg = 'bad xya file did not raise error!'
     558            raise msg
     559
     560#            self.failUnless(0 ==1,
     561#                        'bad xya file did not raise error!')   
    583562        os.remove(fileName)             
    584563
     
    587566       
    588567        fileName = tempfile.mktemp(".xya")
    589         #print fileName
    590568        try:
    591             dict = import_points_file(fileName,delimiter = ' ')
     569            results = Geospatial_data(fileName, delimiter = ' ')
    592570        except IOError:
    593571            pass
    594572        else:
    595             self.failUnless(0 ==1,
    596                         'imaginary file did not raise error!')
     573            msg = 'imaginary file did not raise error!'
     574            raise msg
     575
     576#        except IOError:
     577#            pass
     578#        else:
     579#            self.failUnless(0 == 1,
     580#                        'imaginary file did not raise error!')
     581
    597582                       
    598583  ###################### .XYA ##############################
     
    611596        G = Geospatial_data(pointlist, att_dict, geo_reference)
    612597        G.export_points_file(fileName)
    613         dict2 = import_points_file(fileName)
     598
     599#        dict2 = import_points_file(fileName)
     600        results = Geospatial_data(file_name = fileName)
    614601        #print "fileName",fileName
    615602        os.remove(fileName)
    616         #print "dict2",dict2
    617        
    618         assert allclose(dict2['pointlist'],[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    619         assert allclose(dict2['attributelist']['elevation'], [10.0, 0.0, 10.4])
     603       
     604        assert allclose(results.get_data_points(absolute=False),[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     605        assert allclose(results.get_attributes(attribute_name = 'elevation'), [10.0, 0.0, 10.4])
    620606        answer = [10.0, 0.0, 10.4]
    621         assert allclose(dict2['attributelist']['brightness'], answer)
     607        assert allclose(results.get_attributes(attribute_name = 'brightness'), answer)
    622608        #print "dict2['geo_reference']",dict2['geo_reference']
    623         self.failUnless(geo_reference == dict2['geo_reference'],
     609        self.failUnless(results.get_geo_reference() == geo_reference,
    624610                         'test_writepts failed. Test geo_reference')
    625611
    626612    def test_export_xya_file2(self):
     613        """test absolute xya file
     614        """
    627615        att_dict = {}
    628616        pointlist = array([[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     
    633621        G = Geospatial_data(pointlist, att_dict)
    634622        G.export_points_file(fileName)
    635         dict2 = import_points_file(fileName)
    636         os.remove(fileName)
    637        
    638         assert allclose(dict2['pointlist'],[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    639         assert allclose(dict2['attributelist']['elevation'], [10.0, 0.0, 10.4])
     623        results = Geospatial_data(file_name = fileName)
     624#        dict2 = import_points_file(fileName)
     625        os.remove(fileName)
     626       
     627        assert allclose(results.get_data_points(False),[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     628        assert allclose(results.get_attributes('elevation'), [10.0, 0.0, 10.4])
    640629        answer = [10.0, 0.0, 10.4]
    641         assert allclose(dict2['attributelist']['brightness'], answer)
    642 
    643     def test_export_xya_file2(self):
     630        assert allclose(results.get_attributes('brightness'), answer)
     631
     632    def test_export_xya_file3(self):
     633        """test absolute xya file with geo_ref
     634        """
    644635        att_dict = {}
    645636        pointlist = array([[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     
    651642        fileName = tempfile.mktemp(".xya")
    652643        G = Geospatial_data(pointlist, att_dict, geo_reference)
     644       
    653645        G.export_points_file(fileName, absolute=True)
    654         dict2 = import_points_file(fileName)
    655         #print "fileName",fileName
    656         os.remove(fileName)
    657         #print "dict2",dict2
    658        
    659 #        assert allclose(dict2['pointlist'],[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    660         assert allclose(dict2['pointlist'],[[2.9, 1.9],[1.9, 2.9],[2.9, 1.9]])
    661         assert allclose(dict2['attributelist']['elevation'], [10.0, 0.0, 10.4])
     646       
     647        results = Geospatial_data(file_name = fileName)
     648        os.remove(fileName)
     649
     650        assert allclose(results.get_data_points(),
     651                        [[2.9, 1.9],[1.9, 2.9],[2.9, 1.9]])
     652        assert allclose(results.get_attributes(attribute_name = 'elevation'),
     653                        [10.0, 0.0, 10.4])
    662654        answer = [10.0, 0.0, 10.4]
    663         assert allclose(dict2['attributelist']['brightness'], answer)
    664 #        print "dict2['geo_reference']",dict2['geo_reference']
    665         self.failUnless(None == dict2['geo_reference'],
    666                          'test_writepts failed. Test geo_reference')
    667 
     655        assert allclose(results.get_attributes(attribute_name = 'brightness'), answer)
     656        self.failUnless(results.get_geo_reference() == geo_reference,
     657                         'test_writepts failed. Test geo_reference')                         
     658                       
     659                       
     660                       
    668661    def test_new_export_pts_file(self):
    669662        att_dict = {}
     
    678671        G.export_points_file(fileName)
    679672
    680         dict2 = import_points_file(fileName)
    681 
    682         os.remove(fileName)
    683        
    684         assert allclose(dict2['pointlist'],[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    685         assert allclose(dict2['attributelist']['elevation'], [10.1, 0.0, 10.4])
     673        results = Geospatial_data(file_name = fileName)
     674
     675        os.remove(fileName)
     676       
     677        assert allclose(results.get_data_points(),[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     678        assert allclose(results.get_attributes(attribute_name = 'elevation'), [10.1, 0.0, 10.4])
    686679        answer = [10.0, 1.0, 10.4]
    687         assert allclose(dict2['attributelist']['brightness'], answer)
     680        assert allclose(results.get_attributes(attribute_name = 'brightness'), answer)
    688681
    689682    def test_new_export_absolute_pts_file(self):
     
    700693        G.export_points_file(fileName, absolute=True)
    701694
    702         dict2 = import_points_file(fileName)
    703 
    704         os.remove(fileName)
    705        
    706 #        assert allclose(dict2['pointlist'],[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    707         assert allclose(dict2['pointlist'],G.get_data_points(True))
    708         assert allclose(dict2['attributelist']['elevation'], [10.1, 0.0, 10.4])
     695        results = Geospatial_data(file_name = fileName)
     696
     697        os.remove(fileName)
     698       
     699        assert allclose(results.get_data_points(), G.get_data_points(True))
     700        assert allclose(results.get_attributes(attribute_name = 'elevation'), [10.1, 0.0, 10.4])
    709701        answer = [10.0, 1.0, 10.4]
    710         assert allclose(dict2['attributelist']['brightness'], answer)
     702        assert allclose(results.get_attributes(attribute_name = 'brightness'), answer)
    711703
    712704    def test_loadpts(self):
     
    740732        outfile.close()
    741733       
    742         dict = import_points_file(fileName)
     734        results = Geospatial_data(file_name = fileName)
    743735        os.remove(fileName)
    744736        answer =  [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]]
    745         #print "dict['pointlist']",dict['pointlist']
    746         #print "answer",answer
    747         assert allclose(dict['pointlist'], [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    748         assert allclose(dict['attributelist']['elevation'], [10.0, 0.0, 10.4])
     737        assert allclose(results.get_data_points(), [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     738        assert allclose(results.get_attributes(attribute_name = 'elevation'), [10.0, 0.0, 10.4])
    749739       
    750740    def test_writepts(self):
    751 #        dict = {}
    752741        att_dict = {}
    753742        pointlist = array([[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    754743        att_dict['elevation'] = array([10.0, 0.0, 10.4])
    755744        att_dict['brightness'] = array([10.0, 0.0, 10.4])
    756 #        dict['attributelist'] = att_dict
    757745        geo_reference = Geo_reference(56,1.9,1.9)
    758746       
     
    763751        G.export_points_file(fileName)
    764752       
    765         dict2 = import_points_file(fileName)
    766 
    767         os.remove(fileName)
    768 
    769         assert allclose(dict2['pointlist'],[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
    770         assert allclose(dict2['attributelist']['elevation'], [10.0, 0.0, 10.4])
     753        results = Geospatial_data(file_name = fileName)
     754
     755        os.remove(fileName)
     756
     757        assert allclose(results.get_data_points(False),[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     758        assert allclose(results.get_attributes('elevation'), [10.0, 0.0, 10.4])
    771759        answer = [10.0, 0.0, 10.4]
    772         assert allclose(dict2['attributelist']['brightness'], answer)
    773 
    774         #print "dict['geo_reference'] ",dict['geo_reference']
    775         #print "dict2['geo_reference']",dict2['geo_reference']
    776        
    777         self.failUnless(geo_reference == dict2['geo_reference'],
     760        assert allclose(results.get_attributes('brightness'), answer)
     761
     762       
     763        self.failUnless(geo_reference == geo_reference,
    778764                         'test_writepts failed. Test geo_reference')
    779765       
     
    787773        #print fileName
    788774        try:
    789             dict = import_points_file(fileName)
     775            results = Geospatial_data(file_name = fileName)
     776#            dict = import_points_file(fileName)
    790777        except IOError:
    791778            pass
    792779        else:
    793             self.failUnless(0 ==1,
    794                         'imaginary file did not raise error!')
     780            msg = 'imaginary file did not raise error!'
     781            raise msg
     782#            self.failUnless(0 == 1,
     783#                        'imaginary file did not raise error!')
    795784
    796785
     
    916905        fileName2 = tempfile.mktemp(".pts")
    917906
    918 #        G1.export_points_file(fileName1)
    919 #        G2.export_points_file(fileName2)
    920        
    921         results_file = 'resulting_points.pts'
     907        #makes files
     908        G1.export_points_file(fileName1)
     909        G2.export_points_file(fileName2)
    922910       
    923911        # add files
    924912       
    925         G = G1 + G2
    926        
    927         G.export_points_file(results_file)
    928 #        add_points_files(fileName1, fileName2, results_file )
     913        G3 = Geospatial_data(file_name = fileName1)
     914        G4 = Geospatial_data(file_name = fileName2)
     915       
     916        G = G3 + G4
     917
    929918       
    930919        #read results
    931         results_dict = import_points_file(results_file)
    932 #        print 'results points:', results_dict['pointlist']
    933 #        print 'results geo_ref:', results_dict['geo_reference']
    934        
    935         assert allclose(results_dict['pointlist'],
     920        assert allclose(G.get_data_points(absolute = False),
    936921                        [[2.0, 0.0],[1.0, 1.0],
    937922                         [2.0, 0.0],[2.0, 2.0],
    938923                         [1.0, 3.0],[2.0, 2.0]])
    939         assert allclose(results_dict['attributelist']['elevation'],
     924        assert allclose(G.get_attributes(attribute_name = 'elevation'),
    940925                        [-10.0, 0.0, 10.4, 1.0, 15.0, 1.4])
    941926       
    942927        answer = [10.0, 0.0, 10.4, 14.0, 1.0, -12.4]
    943         assert allclose(results_dict['attributelist']['brightness'], answer)
    944        
    945         self.failUnless(results_dict['geo_reference'] == geo_reference1,
     928        assert allclose(G.get_attributes(attribute_name = 'brightness'), answer)
     929       
     930        self.failUnless(G.get_geo_reference() == geo_reference1,
    946931                         'test_writepts failed. Test geo_reference')
    947932                         
    948 #        os.remove(fileName1)
    949 #        os.remove(fileName2)
    950         os.remove(results_file)
    951 
    952    
     933        os.remove(fileName1)
     934        os.remove(fileName2)
     935       
    953936    def test_ensure_absolute(self):
    954937        points = [[2.0, 0.0],[1.0, 1.0],
     
    1010993        assert allclose(new_points, ab_points)
    1011994       
     995    def test_isinstance(self):
     996
     997        import os
     998       
     999        fileName = tempfile.mktemp(".xya")
     1000        file = open(fileName,"w")
     1001        file.write("  elevation   speed \n\
     10021.0 0.0 10.0 0.0\n\
     10030.0 1.0 0.0 10.0\n\
     10041.0 0.0 10.4 40.0\n\
     1005#geocrap\n\
     100656\n\
     100756.6\n\
     10083\n")
     1009        file.close()
     1010
     1011        results = Geospatial_data(fileName)
     1012       
     1013        assert allclose(results.get_data_points(absolute = False), [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
     1014        assert allclose(results.get_attributes(attribute_name = 'elevation'), [10.0, 0.0, 10.4])
     1015        assert allclose(results.get_attributes(attribute_name = 'speed'), [0.0, 10.0, 40.0])
     1016
     1017        os.remove(fileName)
     1018       
     1019    def test_delimiter(self):
     1020       
     1021        try:
     1022            G = Geospatial_data(delimiter = ',')
     1023#            results = Geospatial_data(file_name = fileName)
     1024#            dict = import_points_file(fileName)
     1025        except ValueError:
     1026            pass
     1027        else:
     1028            msg = 'Instance with No fileName but has a delimiter\
     1029                  did not raise error!'
     1030            raise msg
     1031
     1032    def test_no_constructors(self):
     1033       
     1034        try:
     1035            G = Geospatial_data()
     1036#            results = Geospatial_data(file_name = fileName)
     1037#            dict = import_points_file(fileName)
     1038        except ValueError:
     1039            pass
     1040        else:
     1041            msg = 'Instance must have a filename or data points'
     1042            raise msg       
     1043
     1044
     1045
    10121046if __name__ == "__main__":
    10131047    #suite = unittest.makeSuite(Test_Geospatial_data, 'test_ensure_absolute')
Note: See TracChangeset for help on using the changeset viewer.