Package ComboCode :: Package cc :: Package ivs :: Package io :: Module testIO
[hide private]
[frames] | no frames]

Source Code for Module ComboCode.cc.ivs.io.testIO

  1  import os 
  2  import h5py 
  3  import numpy as np 
  4  from cc.ivs.io import hdf5 
  5   
  6  import unittest 
  7   
8 -class HDF5TestCase(unittest.TestCase):
9
10 - def testWriteDict(self):
11 """ io.hdf5.write_dict() """ 12 data = {} 13 data['number'] = 12.30 14 data['list'] = [45, 78.36] 15 data['string'] = 'This is a piece of text' 16 17 set1 = {} 18 set1['grid'] = np.random.uniform(size=(10,10)) 19 set1['x'] = np.linspace(0,10,num=10) 20 set1['y'] = np.linspace(-5,5,num=10) 21 set1['subset'] = {'w1':10.0, 'w2':12.0, 'w3':13.0} 22 data['set1'] = set1 23 24 set2 = {} 25 set2['grid'] = np.random.uniform(size=(10,10)) 26 set2['x'] = np.linspace(-10,0,num=10) 27 set2['y'] = np.linspace(0,5,num=10) 28 set2['subset'] = {'w1':1, 'w2':2, 'w3':3, 'label':'again some text'} 29 data['set2'] = set2 30 31 hdf5.write_dict(data, 'test.hdf5', update=False, attr_types=[float, int, str, list]) 32 33 hdf = h5py.File('test.hdf5', 'r') 34 35 self.assertTrue('set1' in hdf) 36 self.assertTrue('set2' in hdf) 37 self.assertTrue('number' in hdf.attrs) 38 self.assertTrue('string' in hdf.attrs) 39 self.assertTrue('list' in hdf.attrs) 40 41 self.assertEqual(hdf.attrs['number'], data['number']) 42 self.assertEqual(hdf.attrs['string'], data['string']) 43 self.assertListEqual(hdf.attrs['list'].tolist(), data['list']) 44 45 self.assertTrue(np.all(hdf['set1']['grid'].value == set1['grid'])) 46 self.assertTrue(np.all(hdf['set1']['x'].value == set1['x'])) 47 self.assertTrue(np.all(hdf['set1']['y'].value == set1['y'])) 48 49 self.assertEqual(hdf['set1']['subset'].attrs['w1'], 10.0) 50 self.assertEqual(hdf['set1']['subset'].attrs['w2'], 12.0) 51 self.assertEqual(hdf['set1']['subset'].attrs['w3'], 13.0) 52 53 self.assertTrue(np.all(hdf['set2']['grid'].value == set2['grid'])) 54 self.assertTrue(np.all(hdf['set2']['x'].value == set2['x'])) 55 self.assertTrue(np.all(hdf['set2']['y'].value == set2['y'])) 56 57 self.assertEqual(hdf['set2']['subset'].attrs['w1'], 1) 58 self.assertEqual(hdf['set2']['subset'].attrs['w2'], 2) 59 self.assertEqual(hdf['set2']['subset'].attrs['w3'], 3) 60 61 hdf.close() 62 63 if os.path.isfile('test.hdf5'): 64 os.remove('test.hdf5')
65
66 - def testReadDict(self):
67 """ io.hdf5.read2dict() """ 68 69 if os.path.isfile('test.hdf5'): 70 os.remove('test.hdf5') 71 hdf = h5py.File('test.hdf5', 'w') 72 73 hdf.create_group('set1') 74 hdf.create_group('set2') 75 hdf.create_dataset('list', data=[12,124.54]) 76 77 grid1 = np.random.uniform(size=(10,10)) 78 hdf['set1'].create_dataset('grid', data = grid1) 79 hdf['set1'].attrs['w1'] = 'this is a label' 80 hdf['set1'].create_group('subset') 81 hdf['set1']['subset'].attrs['w1'] = 15.2 82 hdf['set1']['subset'].attrs['w2'] = -1000000000000 83 hdf['set1']['subset'].attrs['w3'] = 'yet another text string' 84 85 grid2 = np.random.uniform(size=(10,10)) 86 hdf['set2'].create_dataset('grid', data = grid2) 87 88 hdf.close() 89 90 data = hdf5.read2dict('test.hdf5') 91 92 self.assertTrue('set1' in data) 93 self.assertTrue('set2' in data) 94 self.assertTrue('list' in data) 95 self.assertListEqual(data['list'].tolist(), [12,124.54]) 96 97 self.assertTrue(np.all(data['set1']['grid'] == grid1)) 98 self.assertEqual(data['set1']['w1'], 'this is a label') 99 100 self.assertEqual(data['set1']['subset']['w1'], 15.2) 101 self.assertEqual(data['set1']['subset']['w2'], -1000000000000) 102 self.assertEqual(data['set1']['subset']['w3'], 'yet another text string') 103 self.assertTrue(np.all(data['set2']['grid'] == grid2)) 104 105 if os.path.isfile('test.hdf5'): 106 os.remove('test.hdf5')
107