Source code for test.metadata
import binoculars.util
import binoculars.space
import os
import numpy
import unittest
[docs]class TestCase(unittest.TestCase):
[docs] def setUp(self):
fn = 'examples/configs/example_config_id03'
self.cfg = binoculars.util.ConfigFile.fromtxtfile(fn)
[docs] def test_IO(self):
test = {'string' : 'string', 'numpy.array' : numpy.arange(10), 'list' : range(10), 'tuple' : tuple(range(10))}
metasection = binoculars.util.MetaBase()
metasection.add_section('first', test)
print(metasection)
metadata = binoculars.util.MetaData()
metadata.add_dataset(metasection)
metadata.add_dataset(self.cfg)
metadata.tofile('test.hdf5')
metadata += binoculars.util.MetaData.fromfile('test.hdf5')
axis = tuple(binoculars.space.Axis(0,10,1,label) for label in ['h', 'k', 'l'])
axes = binoculars.space.Axes(axis)
space = binoculars.space.Space(axes)
spacedict = dict(z for z in zip('abcde', range(5)))
dataset = binoculars.util.MetaBase('fromspace', spacedict)
space.metadata.add_dataset(dataset)
space.tofile('test2.hdf5')
testspace = binoculars.space.Space.fromfile('test2.hdf5')
print(space + testspace).metadata
print('--------------------------------------------------------')
print(metadata)
print(metadata.serialize())
print(binoculars.util.MetaData.fromserial(metadata.serialize()))
[docs] def tearDown(self):
os.remove('test.hdf5')
os.remove('test2.hdf5')
if __name__ == '__main__':
unittest.main()