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()