File: test_metadata.py

package info (click to toggle)
binoculars 0.0.19-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 616 kB
  • sloc: python: 8,647; makefile: 157; sh: 44
file content (59 lines) | stat: -rw-r--r-- 1,708 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import binoculars.util
import binoculars.space
import os
import numpy

import unittest


class MetaDataTestCase(unittest.TestCase):
    def setUp(self):
        fn = "tests/data/example_config_id03"
        self.cfg = binoculars.util.ConfigFile.fromtxtfile(fn)

    @unittest.expectedFailure
    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()))

    def tearDown(self):
        os.remove("test.hdf5")
        os.remove("test2.hdf5")


if __name__ == "__main__":
    unittest.main()