source: inundation/ga/storm_surge/pmesh/load_mesh/test_loadASCII.py @ 1106

Last change on this file since 1106 was 1106, checked in by duncan, 20 years ago

fix test

File size: 23.6 KB
Line 
1#!/usr/bin/env python
2#
3
4#FIXME (Ole): I think we need a unit test of write_ASCII_triangulation
5#             in order to quash bug in merimbula data
6#  - to quash the bug need a raised error in pyvolution for reading xya files
7# when the title attribute information is not consistent with the data in the
8# file - DSG
9# also test_export_mesh_file tests write_ASCII_triangulation  - DSG
10
11import tempfile
12import unittest
13
14import os
15import tempfile
16
17from os.path import splitext
18
19from Numeric import array, allclose
20   
21from loadASCII import *
22from coordinate_transforms.geo_reference import Geo_reference
23
24class loadASCIITestCase(unittest.TestCase):
25    def setUp(self):
26        self.dict ={}
27        self.dict['outline_segments'] = [(0, 1), (1, 2), (0, 2), (0, 3)]
28        self.dict['outline_segment_tags'] = ['50', '40', '30', '20']
29        self.dict['holes'] = [(0.2, 0.6)]
30        self.dict['point_attributes'] = [[5, 2], [4, 2], [3, 2], [2,2]]
31        self.dict['regions'] = [(0.3, 0.3),(0.3, 0.4)]
32        self.dict['region_tags'] = ['1.3', 'yeah']
33        self.dict['region_max_areas'] = [36.0,-7.1]
34        self.dict['points'] = [(0.0, 0.0), (0.0, 4.0), (4.0, 0.0), (1.0, 1.0)]
35        self.dict['vertices'] = [(0.0, 0.0), (0.0, 4.0),
36                                 (4.0, 0.0), (1.0, 1.0), (2.0, 2.0)]
37        self.dict['triangles'] = [(3, 2, 4), (1, 0, 3),
38                                             (3, 4,1), (2, 3, 0)]
39        self.dict['segments'] = [(0, 1), (1, 4), (2, 0),
40                                            (0, 3), (4, 2)]
41        self.dict['triangle_tags'] = [['1.3'], ['1.3'],
42                                      ['1.3'], ['1.3']]
43        self.dict['vertex_attributes'] = [[1.2,2.], [1.2,2.],
44                                          [1.2,2.], [1.2,2.], [1.2,3.]]
45        self.dict['triangle_neighbors'] = [[-1, 2, 3], [3, 2, -1],
46                                           [-1, 1, 0], [1, -1, 0]]
47        self.dict['segment_tags'] = ['50', '40', '30', '20', '40']
48        self.dict['vertex_attribute_titles'] = ['bed elevation', 'height']
49        self.dict['geo_reference'] = Geo_reference(56,1.9,1.9)
50       
51        self.sparse_dict ={}
52        self.sparse_dict['outline_segments'] = []
53        self.sparse_dict['outline_segment_tags'] = []
54        self.sparse_dict['holes'] = []
55        self.sparse_dict['points'] = [(0.0, 0.0),(9,8)]
56        self.sparse_dict['point_attributes'] = [[],[]] # points don't have to have
57                                                    # attributes
58        self.sparse_dict['regions'] = []
59        self.sparse_dict['region_tags'] = []
60        self.sparse_dict['region_max_areas'] = []
61
62        self.sparse_dict['vertices'] = []
63        self.sparse_dict['triangles'] = []
64        self.sparse_dict['segments'] = []
65        self.sparse_dict['triangle_tags'] = []
66        self.sparse_dict['vertex_attributes'] = []
67        self.sparse_dict['triangle_neighbors'] = []
68        self.sparse_dict['segment_tags'] = []
69        self.sparse_dict['vertex_attribute_titles'] = []
70       
71        self.blank_dict ={}
72        self.blank_dict['outline_segments'] = []
73        self.blank_dict['outline_segment_tags'] = []
74        self.blank_dict['holes'] = []
75        self.blank_dict['points'] = []
76        self.blank_dict['point_attributes'] = [] 
77        self.blank_dict['regions'] = []
78        self.blank_dict['region_tags'] = []
79        self.blank_dict['region_max_areas'] = []
80        self.blank_dict['vertices'] = []
81        self.blank_dict['triangles'] = []
82        self.blank_dict['segments'] = []
83        self.blank_dict['triangle_tags'] = []
84        self.blank_dict['vertex_attributes'] = []
85        self.blank_dict['triangle_neighbors'] = []
86        self.blank_dict['segment_tags'] = []
87        self.blank_dict['vertex_attribute_titles'] = []
88       
89        self.tri_dict ={}
90        self.tri_dict['outline_segments'] = [[0,1]]
91        self.tri_dict['outline_segment_tags'] = ['']
92        self.tri_dict['holes'] = []
93        self.tri_dict['points'] = [(9,8),(7,8)]
94        self.tri_dict['point_attributes'] = [[],[]] 
95        self.tri_dict['regions'] = []
96        self.tri_dict['region_tags'] = []
97        self.tri_dict['region_max_areas'] = []
98        self.tri_dict['vertices'] = [[9,8],[7,8], [4,5]]
99        self.tri_dict['triangles'] = [[0,1,2]]
100        self.tri_dict['segments'] = [[0,1]]
101        self.tri_dict['triangle_tags'] = [['']]
102        self.tri_dict['vertex_attributes'] = [[],[],[]]
103        self.tri_dict['triangle_neighbors'] = [[0,0,0]]
104        self.tri_dict['segment_tags'] = ['']
105        self.tri_dict['vertex_attribute_titles'] = []
106       
107        self.seg_dict ={}
108        self.seg_dict['outline_segments'] = [[0,1]]
109        self.seg_dict['outline_segment_tags'] = ['']
110        self.seg_dict['holes'] = []
111        self.seg_dict['points'] = [(9,8),(7,8)]
112        self.seg_dict['point_attributes'] = [[],[]] 
113        self.seg_dict['regions'] = [(5,4)]
114        self.seg_dict['region_tags'] = [''] 
115        self.seg_dict['region_max_areas'] = [-999]
116        self.seg_dict['vertices'] = [(9,8),(7,8)]
117        self.seg_dict['triangles'] = []
118        self.seg_dict['segments'] = [[0,1]]
119        self.seg_dict['triangle_tags'] = []
120        self.seg_dict['vertex_attributes'] = [[],[]]
121        self.seg_dict['triangle_neighbors'] = []
122        self.seg_dict['segment_tags'] = ['']
123        self.seg_dict['vertex_attribute_titles'] = []
124       
125        self.reg_dict ={}
126        self.reg_dict['outline_segments'] = [[0,1]]
127        self.reg_dict['outline_segment_tags'] = ['']
128        self.reg_dict['holes'] = []
129        self.reg_dict['points'] = [(9,8),(7,8)]
130        self.reg_dict['point_attributes'] = [[],[]] 
131        self.reg_dict['regions'] = [(5,4)]
132        self.reg_dict['region_tags'] = ['']
133        self.reg_dict['region_max_areas'] = []
134        self.reg_dict['vertices'] = [(9,8),(7,8)]
135        self.reg_dict['triangles'] = []
136        self.reg_dict['segments'] = [[0,1]]
137        self.reg_dict['triangle_tags'] = []
138        self.reg_dict['vertex_attributes'] = [[],[]]
139        self.reg_dict['triangle_neighbors'] = []
140        self.reg_dict['segment_tags'] = ['']
141        self.reg_dict['vertex_attribute_titles'] = []
142       
143    def tearDown(self):
144        pass
145
146   
147    def test_import_mesh(self):
148       
149        dict = self.dict
150        fileName = tempfile.mktemp(".txt")
151        fd = open(fileName,'w')
152        write_ASCII_outline(fd,dict)
153        fd.close()
154        loaded_dict = import_mesh(fileName) #FIXME function names are wacky
155        os.remove(fileName)
156       
157        #gen_dict =
158        #print "*********************"
159        #print dict
160        #print "**loaded_dict*******************"
161        #print loaded_dict
162        #print "*********************"
163
164       
165        self.failUnless(array(loaded_dict['points'])  ==
166                        array(dict['points']),
167                         'test_import_mesh failed. Test 1')
168        self.failUnless(array(loaded_dict['point_attributes'])  ==
169                        array(dict['point_attributes']),
170                         'test_import_mesh failed. Test 2')
171        self.failUnless(array(loaded_dict['outline_segments'])  ==
172                        array(dict['outline_segments']),
173                         'test_import_mesh failed. Test 3')
174        self.failUnless(array(loaded_dict['outline_segment_tags'])  ==
175                        array(dict['outline_segment_tags']),
176                         'test_import_mesh failed. Test 4')
177        self.failUnless(array(loaded_dict['regions'])  ==
178                        array(dict['regions']),
179                         'test_import_mesh failed. Test 5')
180        self.failUnless(array(loaded_dict['region_tags'])  ==
181                        array(dict['region_tags']),
182                         'test_import_mesh failed. Test 5')
183        self.failUnless(array(loaded_dict['region_max_areas'])  ==
184                        array(dict['region_max_areas']),
185                         'test_import_mesh failed. Test 5')
186
187        self.failUnless(array(loaded_dict['holes'])  ==
188                        array(dict['holes']),
189                         'test_import_mesh failed. Test 6')
190       
191    def test_export_mesh_file(self):
192        import os
193        import tempfile
194       
195        meshDict = self.dict
196        fileName = tempfile.mktemp(".tsh")
197        export_mesh_file(fileName, meshDict)
198        loadedDict = import_triangulation(fileName)
199       
200        #print "*(*( meshDict"
201        #print meshDict
202        #print "*(*(  loadedDcit"
203        #print loadedDict
204        #print "*(*("
205       
206        self.failUnless(array(meshDict['vertices'])  ==
207                        array(loadedDict['vertices']),
208                         'test_export_mesh_file failed. Test 1')
209        self.failUnless(array(meshDict['triangles'])  ==
210                        array(loadedDict['triangles']),
211                         'test_export_mesh_file failed. Test 2')
212        self.failUnless(array(meshDict['segments'])  ==
213                        array(loadedDict['segments']),
214                         'test_export_mesh_file failed. Test 3')
215        self.failUnless(array(meshDict['triangle_tags'])  ==
216                        array(loadedDict['triangle_tags']),
217                         'test_export_mesh_file failed. Test 4')
218       
219        self.failUnless(meshDict['vertex_attributes']  ==
220                        loadedDict['vertex_attributes'],
221                         'test_export_mesh_file failed. Test 5')
222        self.failUnless(array(meshDict['triangle_neighbors'])  ==
223                        array(loadedDict['triangle_neighbors']),
224                         'test_export_mesh_file failed. Test 6')
225        self.failUnless(array(meshDict['segment_tags'])  ==
226                        array(loadedDict['segment_tags']),
227                         'test_export_mesh_file failed. Test 7')
228        self.failUnless(array(meshDict['vertex_attribute_titles'])  ==
229                        array(loadedDict['vertex_attribute_titles']),
230                         'test_export_mesh_file failed. Test 8')
231        self.failUnless(array(meshDict['geo_reference'])  ==
232                        array(loadedDict['geo_reference']),
233                         'test_export_mesh_file failed. Test 9')
234           
235        os.remove(fileName)
236 
237    def test_read_write_msh_file(self):
238        dict = self.dict.copy()
239        fileName = tempfile.mktemp(".txt")
240        write_msh_file(fileName,dict)
241        loaded_dict = read_msh_file(fileName)
242        os.remove(fileName)
243        dict = self.dict
244        #print "*********************"
245        #print dict
246        #print "**loaded_dict*******************"
247        #print loaded_dict
248        #print "*********************"
249        self.check_mesh_dicts(loaded_dict,dict,'test_read_write_msh_file') 
250
251    def test_read_write_msh_fileII(self):
252        dict = self.sparse_dict.copy()
253        fileName = tempfile.mktemp(".txt")
254        write_msh_file(fileName,dict)
255        loaded_dict = read_msh_file(fileName)
256        os.remove(fileName)
257        dict = self.sparse_dict
258        #print "*********************"
259        #print dict
260        #print "**loaded_dict*******************"
261        #print loaded_dict
262        #print "*********************"       
263        self.check_mesh_dicts(loaded_dict,dict, 'test_read_write_msh_fileII')
264             
265    def test_read_write_msh_fileIII(self):
266        dict = self.blank_dict.copy()
267        fileName = tempfile.mktemp(".txt")
268        write_msh_file(fileName,dict)
269        loaded_dict = read_msh_file(fileName)
270        os.remove(fileName)
271        dict = self.blank_dict
272        #print "*********************"
273        #print dict
274        #print "**loaded_dict*******************"
275        #print loaded_dict
276        #print "*********************"       
277        self.check_mesh_dicts(loaded_dict,dict, 'test_read_write_msh_fileIII')
278       
279    def test_read_write_msh_file4(self):
280        dict = self.seg_dict.copy()
281        fileName = tempfile.mktemp(".txt")
282        write_msh_file(fileName,dict)
283        loaded_dict = read_msh_file(fileName)
284        os.remove(fileName)
285        dict = self.seg_dict
286        #print "*********************"
287        #print dict
288        #print "**loaded_dict*******************"
289        #print loaded_dict
290        #print "*********************"
291        self.check_mesh_dicts(loaded_dict,dict, 'test_read_write_msh_fileIII')
292                         
293       
294    def test_read_write_msh_file5(self):
295        dict = self.tri_dict.copy()
296        fileName = tempfile.mktemp(".txt")
297        write_msh_file(fileName,dict)
298        loaded_dict = read_msh_file(fileName)
299        os.remove(fileName)
300        dict = self.tri_dict
301        #print "*********************"
302        #print dict
303        #print "**loaded_dict*******************"
304        #print loaded_dict
305        #print "*********************"
306        self.check_mesh_dicts(loaded_dict,dict, 'test_read_write_msh_fileIII')
307                         
308    def check_mesh_dicts(self, loaded_dict, dict, fail_string ):
309        assert allclose(array(loaded_dict['points']),
310                        array(dict['points']))
311                       
312        assert allclose(array(loaded_dict['point_attributes']),
313                        array(dict['point_attributes']))
314        assert allclose(array(loaded_dict['outline_segments']),
315                        array(dict['outline_segments']))
316       
317        self.failUnless(loaded_dict['outline_segment_tags']  ==
318                        dict['outline_segment_tags'],
319                        fail_string + ' failed!! Test 4')
320       
321           
322        assert allclose(array(loaded_dict['regions']),
323                        array(dict['regions']))
324        self.failUnless(loaded_dict['region_tags']  ==
325                        dict['region_tags'],
326                        fail_string + ' failed!! Test 5')
327       
328        assert allclose(array(loaded_dict['region_max_areas']),
329                        array(dict['region_max_areas']))
330 
331        assert allclose(array(loaded_dict['holes']),
332                        array(dict['holes']))
333 
334        assert allclose(array(dict['vertices']),
335                        array(loaded_dict['vertices']))
336 
337        assert allclose(array(dict['triangles']),
338                        array(loaded_dict['triangles']))
339 
340        assert allclose(array(dict['segments']),
341                        array(loaded_dict['segments']))
342        for ob, ldob in map(None,dict['triangle_tags'],
343                              loaded_dict['triangle_tags']):
344            self.failUnless(ob[0]  == ldob[0],
345                        fail_string + ' failed!! Test triangle_tags')
346        self.failUnless(loaded_dict['vertex_attributes']  ==
347                        dict['vertex_attributes'],
348                        fail_string + ' failed!! Test vertex_attributes')
349 
350        assert allclose(array(dict['triangle_neighbors']),
351                        array(loaded_dict['triangle_neighbors']))
352
353        for seg, ldseg in map(None,dict['segment_tags'],
354                              loaded_dict['segment_tags']):
355            self.failUnless(seg  == ldseg,
356                        fail_string + ' failed!! Test 8')
357        try:
358            assert allclose(array(dict['vertex_attribute_titles']),
359                            array(loaded_dict['vertex_attribute_titles']))
360        except TypeError:
361            self.failUnless(array(loaded_dict['vertex_attribute_titles'])  ==
362                        array(dict['vertex_attribute_titles']),
363                        fail_string + ' failed!! Test 8')
364        try:   
365            self.failUnless(loaded_dict['geo_reference']  ==
366                        dict['geo_reference'] ,
367                        fail_string + ' failed!! Test geo_reference')
368        except KeyError:         
369            self.failUnless(not dict.has_key('geo_reference' and
370                         loaded_dict['geo_reference'] == None)   ,
371                        fail_string + ' failed!! Test geo_reference')
372           
373    def test_loadpts(self):
374       
375        from Scientific.IO.NetCDF import NetCDFFile
376
377        fileName = tempfile.mktemp(".pts")
378        # NetCDF file definition
379        outfile = NetCDFFile(fileName, 'w')
380       
381        # dimension definitions
382        outfile.createDimension('number_of_points', 3)   
383        outfile.createDimension('number_of_dimensions', 2) #This is 2d data
384   
385        # variable definitions
386        outfile.createVariable('points', Float, ('number_of_points',
387                                                 'number_of_dimensions'))
388        outfile.createVariable('elevation', Float, ('number_of_points',))
389   
390        # Get handles to the variables
391        points = outfile.variables['points']
392        elevation = outfile.variables['elevation']
393 
394        points[0, :] = [1.0,0.0]
395        elevation[0] = 10.0 
396        points[1, :] = [0.0,1.0]
397        elevation[1] = 0.0 
398        points[2, :] = [1.0,0.0]
399        elevation[2] = 10.4   
400
401        outfile.close()
402       
403        dict = load_points_file(fileName)
404        os.remove(fileName)
405        answer =  [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]]
406        #print "dict['pointlist']",dict['pointlist']
407        #print "answer",answer
408        assert allclose(dict['pointlist'], [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
409        assert allclose(dict['attributelist']['elevation'], [10.0, 0.0, 10.4])
410
411 
412    def test_concatinate_attributelist(self):
413        dic = {}
414        dic['one'] = array([1,2])
415        dic['2'] = array([2,7])
416        dic['three'] = array([3,79])
417        dic['4'] = array([4,47])
418        dic['five'] = array([5,17])
419        titles, block = concatinate_attributelist(dic)
420        #print "titles", titles
421        #print "array", block
422        self.failUnless(titles  == ['4', '2', 'five', 'three', 'one'],
423                         'test_concatinate_attributelist failed.')
424        assert allclose(block, [[4,2,5,3,1],[47,7,17,79,2]])
425       
426 
427    def test_writepts(self):
428        dict = {}
429        att_dict = {}
430        dict['pointlist'] = array([[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
431        att_dict['elevation'] = array([10.0, 0.0, 10.4])
432        att_dict['brightness'] = array([10.0, 0.0, 10.4])
433        dict['attributelist'] = att_dict
434        dict['geo_reference'] = Geo_reference(56,1.9,1.9)
435       
436       
437        fileName = tempfile.mktemp(".pts")
438        write_pts(fileName, dict)
439        dict2 = load_points_file(fileName)
440        #print "fileName",fileName
441        os.remove(fileName)
442        #print "dict2",dict2
443       
444        assert allclose(dict2['pointlist'],[[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
445        assert allclose(dict2['attributelist']['elevation'], [10.0, 0.0, 10.4])
446        answer = [10.0, 0.0, 10.4]
447        assert allclose(dict2['attributelist']['brightness'], answer)
448
449        #print "dict['geo_reference'] ",dict['geo_reference']
450        #print "dict2['geo_reference']",dict2['geo_reference']
451       
452        self.failUnless(dict['geo_reference'] == dict2['geo_reference'],
453                         'test_writepts failed. Test geo_reference')
454
455       
456    def test_half_pts(self):
457        dict = {}
458        att_dict = {}
459        dict['pointlist'] = array([[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
460        att_dict['elevation'] = array([10.0, 0.0, 10.4])
461        att_dict['brightness'] = array([10.0, 0.0, 10.4])
462        dict['attributelist'] = att_dict
463        out_dict = half_pts(dict)
464        assert allclose(out_dict['pointlist'],[[1.0, 0.0],[1.0, 0.0]])
465        assert allclose(out_dict['attributelist']['elevation'], [10.0, 10.4])
466        assert allclose(out_dict['attributelist']['brightness'], [10.0, 10.4])
467 
468    def test_extent_point_atts(self):
469       
470        dict = {}
471        att_dict = {}
472        dict['pointlist'] = array([[1.0, 10.0],[0.0, 1.0],[10.0, -10.0]])
473        att_dict['elevation'] = array([30.0, 0.0, 10.4])
474        att_dict['brightness'] = array([10.0, 0.0, 10.4])
475        dict['attributelist'] = att_dict
476        out_dict = extent_point_atts(dict)
477       
478        #print "out_dict['pointlist']",out_dict #['pointlist']
479        assert allclose(out_dict['pointlist'],[[0.0, -10.0],[10.0, -10.0],[10.0,10.0],[0.0, 10.0]])
480
481        self.failUnless(dict['attributelist']  == {},
482                         'test_extent_point_atts failed. Test 1')
483       
484    def test_reduce_pts(self):
485        dict = {}
486        att_dict = {}
487        dict['pointlist'] = array([[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
488        att_dict['elevation'] = array([10.0, 0.0, 10.4])
489        att_dict['brightness'] = array([10.0, 0.0, 10.4])
490        dict['attributelist'] = att_dict
491       
492        inFileName = tempfile.mktemp(".pts")
493        write_pts(inFileName, dict)
494       
495        outFileName = tempfile.mktemp(".pts")
496       
497        dict2 = reduce_pts(inFileName,outFileName, 1 )
498        os.remove(inFileName)
499
500        dict2 = load_points_file(outFileName)
501        os.remove(outFileName)
502        #print "dict2",dict2
503       
504        assert allclose(dict2['pointlist'],[[1.0, 0.0]])
505        assert allclose(dict2['attributelist']['elevation'], [10.0])
506        assert allclose(dict2['attributelist']['brightness'], [10.0])
507       
508    def test_produce_half_point_files(self):
509        dict = {}
510        att_dict = {}
511        dict['pointlist'] = array([[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
512        att_dict['elevation'] = array([10.0, 0.0, 10.4])
513        att_dict['brightness'] = array([10.0, 0.0, 10.4])
514        dict['attributelist'] = att_dict
515       
516        inFileName = tempfile.mktemp(".pts")
517        write_pts(inFileName, dict)
518       
519        outFileName = tempfile.mktemp(".pts")
520        delimiter = '_p'
521        outfiles = produce_half_point_files(inFileName, 1,
522                                            delimiter, verbose = False )
523        os.remove(inFileName)
524        root, ext = splitext(inFileName)
525        outFileName = root + delimiter + ext
526        #print "outFileName",outfiles 
527        dict2 = load_points_file(outfiles[1])
528        for file in outfiles:
529            #print "del file",file
530            os.remove(file)
531       
532        assert allclose(dict2['pointlist'],[[1.0, 0.0]])
533        assert allclose(dict2['attributelist']['elevation'], [10.0])
534        assert allclose(dict2['attributelist']['brightness'], [10.0])
535       
536    def test_loadxy3(self):
537       
538        fileName = tempfile.mktemp(".xya")
539        file = open(fileName,"w")
540        file.write("  elevation  , speed \n\
5411.0, 0.0, 10.0, 0.0\n\
5420.0, 1.0, 0.0, 10.0\n\
5431.0, 0.0, 10.4, 40.0\n")
544        file.close()
545        #print fileName
546        dict = load_points_file(fileName,delimiter = ',')
547        os.remove(fileName)
548        assert allclose(dict['pointlist'], [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
549        assert allclose(dict['attributelist']['elevation'], [10.0, 0.0, 10.4])
550        assert allclose(dict['attributelist']['speed'], [0.0, 10.0, 40.0])
551       
552    def test_loadxy4(self):
553        import os
554        import tempfile
555       
556        fileName = tempfile.mktemp(".xya")
557        file = open(fileName,"w")
558        file.write("  elevation   speed \n\
5591.0 0.0 10.0 0.0\n\
5600.0 1.0 0.0 10.0\n\
5611.0 0.0 10.4 40.0\n")
562        file.close()
563        #print fileName
564        dict = load_points_file(fileName,delimiter = ' ')
565        os.remove(fileName)
566        assert allclose(dict['pointlist'], [[1.0, 0.0],[0.0, 1.0],[1.0, 0.0]])
567        assert allclose(dict['attributelist']['elevation'], [10.0, 0.0, 10.4])
568        assert allclose(dict['attributelist']['speed'], [0.0, 10.0, 40.0])
569     
570    def test_loadxy5(self):
571        import os
572        import tempfile
573       
574        fileName = tempfile.mktemp(".xya")
575        file = open(fileName,"w")
576        file.write("  elevation   \n\
5771.0 0.0 10.0 0.0\n\
5780.0 1.0 0.0 10.0\n\
5791.0 0.0 10.4 40.0\n")
580        file.close()
581        #print fileName
582        try:
583            dict = load_points_file(fileName,delimiter = ' ')
584        except TitleAmountError:
585            pass
586        else:
587            self.failUnless(0 ==1,
588                        'bad xya file did not raise error!')
589       
590        os.remove(fileName)
591         
592 
593#-------------------------------------------------------------
594if __name__ == "__main__":
595
596    suite = unittest.makeSuite(loadASCIITestCase,'test')
597    #suite = unittest.makeSuite(loadASCIITestCase,'test_writepts')
598    runner = unittest.TextTestRunner() #verbosity=2)
599    runner.run(suite)
600   
Note: See TracBrowser for help on using the repository browser.