Ignore:
Timestamp:
Jun 3, 2010, 12:45:54 PM (15 years ago)
Author:
James Hudson
Message:

Fixed a bunch of failing tests - only 3 still failing.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/anuga_core/source/anuga/file/test_csv.py

    r7762 r7772  
    44import numpy as num
    55
    6 from csv_file import load_csv_as_array, load_csv_as_dict
    7 
     6from csv_file import load_csv_as_array, load_csv_as_dict, store_parameters, \
     7                        load_csv_as_matrix
    88
    99class Test_csv(unittest.TestCase):
     
    1313    def tearDown(self):
    1414        pass
     15
     16    def _create_csv_file(self):
     17        """
     18            Create a dummy csv file.
     19            Return its filename.
     20        """     
     21        filename = tempfile.mktemp(".txt")
     22        file = open(filename,"w")
     23        file.write("elevation, stage\n\
     241.0, 3  \n\
     250.0, 4 \n\
     264.0, 3 \n\
     271.0, 6 \n")
     28        file.close()
     29        return filename
    1530       
    1631    def test_get_data_from_file1(self):
    17         fileName = tempfile.mktemp(".txt")
    18 #        print"filename",fileName
    19         file = open(fileName,"w")
    20         file.write("elevation stage\n\
    21 1.3 3  \n\
    22 0.0 4 \n\
    23 4.5 3.5 \n\
    24 1.0 6 \n")
    25         file.close()
    26 
    27         x = load_csv_as_array(fileName, delimiter=' ') 
    28        
    29        # header, x = load_csv_as_array(fileName, delimiter=' ')
    30         os.remove(fileName)
    31 
    32         assert num.allclose(x['elevation'], [1.3, 0.0,4.5, 1.0])
    33         assert num.allclose(x['stage'], [3.0, 4.0,3.5, 6.0])       
    34        
     32        filename = self._create_csv_file()
     33
     34        x = load_csv_as_array(filename) 
     35       
     36        os.remove(filename)
     37
     38        assert num.allclose(x['elevation'], [1.0, 0.0, 4.0, 1.0])
     39        assert num.allclose(x['stage'], [3.0, 4.0, 3.0, 6.0])       
     40
     41
     42    def test_get_data_from_file(self):
     43        filename = self._create_csv_file()
     44       
     45        header,x = load_csv_as_matrix(filename)
     46        os.remove(filename)
     47       
     48        assert num.allclose(x[:,0], [1.0, 0.0,4.0, 1.0])
     49
     50       
     51    def test_store_parameters(self):
     52        """tests store temporary file
     53        """
     54       
     55        from os import sep, getenv
     56       
     57        output_dir=''
     58        file_name='details.csv'
     59       
     60        kwargs = {'file_name':'new2.txt',
     61                  'output_dir':output_dir,
     62                  'file_name':file_name,
     63                  'who':'me',
     64                  'what':'detail',
     65                  'how':2,
     66                  'why':241,
     67#                  'completed':345
     68                  }
     69        store_parameters(verbose=False,**kwargs)
     70
     71        temp='detail_temp.csv'
     72        fid = open(temp)
     73        file_header = fid.readline()
     74        file_line = fid.readline()
     75        fid.close()
     76       
     77       
     78        keys = kwargs.keys()
     79        keys.sort()
     80        line=''
     81        header=''
     82        count=0
     83        #used the sorted keys to create the header and line data
     84        for k in keys:
     85#            print "%s = %s" %(k, kwargs[k])
     86            header = header+str(k)
     87            line = line+str(kwargs[k])
     88            count+=1
     89            if count <len(kwargs):
     90                header = header+','
     91                line = line+','
     92        header+='\n'
     93        line+='\n'
     94       
     95       
     96        #file exists
     97        assert os.access(temp, os.F_OK)
     98        assert header == file_header
     99        assert line == file_line
     100       
     101        os.remove(temp)
     102       
     103    def test_store_parameters1(self):
     104        """tests store in temporary file and other file
     105        """
     106       
     107        from os import sep, getenv
     108       
     109        output_dir=''
     110        file_name='details.csv'
     111       
     112        kwargs = {'file_name':'new2.txt',
     113                  'output_dir':output_dir,
     114                  'file_name':file_name,
     115                  'who':'me',
     116                  'what':'detail',
     117                  'how':2,
     118                  'why':241,
     119#                  'completed':345
     120                  }
     121        store_parameters(verbose=False,**kwargs)
     122       
     123        kwargs['how']=55
     124        kwargs['completed']=345
     125
     126        keys = kwargs.keys()
     127        keys.sort()
     128        line=''
     129        header=''
     130        count=0
     131        #used the sorted keys to create the header and line data
     132        for k in keys:
     133#            print "%s = %s" %(k, kwargs[k])
     134            header = header+str(k)
     135            line = line+str(kwargs[k])
     136            count+=1
     137            if count <len(kwargs):
     138                header = header+','
     139                line = line+','
     140        header+='\n'
     141        line+='\n'
     142       
     143        kwargs['how']=55
     144        kwargs['completed']=345
     145       
     146        store_parameters(verbose=False,**kwargs)
     147       
     148#        temp='detail_temp.csv'
     149        fid = open(file_name)
     150        file_header = fid.readline()
     151        file_line1 = fid.readline()
     152        file_line2 = fid.readline()
     153        fid.close()
     154       
     155       
     156        #file exists
     157#        print 'header',header,'line',line
     158#        print 'file_header',file_header,'file_line1',file_line1,'file_line2',file_line2
     159        assert os.access(file_name, os.F_OK)
     160        assert header == file_header
     161        assert line == file_line1
     162       
     163        temp='detail_temp.csv'
     164        os.remove(temp)
     165        os.remove(file_name)       
     166       
     167    def test_store_parameters2(self):
     168        """tests appending the data to the end of an existing file
     169        """
     170       
     171        from os import sep, getenv
     172       
     173        output_dir=''
     174        file_name='details.csv'
     175       
     176        kwargs = {'file_name':'new2.txt',
     177                  'output_dir':output_dir,
     178                  'file_name':file_name,
     179                  'who':'me',
     180                  'what':'detail',
     181                  'how':2,
     182                  'why':241,
     183                  'completed':345
     184                  }
     185        store_parameters(verbose=False,**kwargs)
     186       
     187        kwargs['how']=55
     188        kwargs['completed']=23.54532
     189       
     190        store_parameters(verbose=False,**kwargs)
     191       
     192        keys = kwargs.keys()
     193        keys.sort()
     194        line=''
     195        header=''
     196        count=0
     197        #used the sorted keys to create the header and line data
     198        for k in keys:
     199#            print "%s = %s" %(k, kwargs[k])
     200            header = header+str(k)
     201            line = line+str(kwargs[k])
     202            count+=1
     203            if count <len(kwargs):
     204                header = header+','
     205                line = line+','
     206        header+='\n'
     207        line+='\n'
     208       
     209        fid = open(file_name)
     210        file_header = fid.readline()
     211        file_line1 = fid.readline()
     212        file_line2 = fid.readline()
     213        fid.close()
     214       
     215        assert os.access(file_name, os.F_OK)
     216        assert header == file_header
     217        assert line == file_line2
     218       
     219        os.remove(file_name)       
     220       
     221
     222
    35223
    36224#################################################################################
Note: See TracChangeset for help on using the changeset viewer.