File: test_McStasMetaData.py

package info (click to toggle)
python-mcstasscript 0.0.46%2Bgit20250402111921.bfa5a26-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,440 kB
  • sloc: python: 13,421; makefile: 14
file content (122 lines) | stat: -rw-r--r-- 4,416 bytes parent folder | download
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import unittest

from mcstasscript.data.data import McStasMetaData


class TestMcStasMetaData(unittest.TestCase):
    """
    Various tests of McStasMetaData class
    """

    def test_McStasMetaData_return_type(self):
        """
        Test that newly created McStasMetaData has correct type
        """
        meta_data = McStasMetaData()
        self.assertIsInstance(meta_data, McStasMetaData)

    def test_McStasMetaData_init(self):
        """
        Test that newly created McStasMetaData has no content
        """
        meta_data = McStasMetaData()
        self.assertEqual(len(meta_data.info), 0)

    def test_McStasMetaData_add_info_len(self):
        """
        Test that info can be added to McStasMetaData
        """
        meta_data = McStasMetaData()
        meta_data.add_info("test", 3)
        self.assertEqual(len(meta_data.info), 1)

    def test_McStasMetaData_add_info(self):
        """
        Test that info can be read from McStasMetaData
        """
        meta_data = McStasMetaData()
        meta_data.add_info("test", 3)
        self.assertEqual(meta_data.info["test"], 3)

    def test_McStasMetaData_add_info_title(self):
        """
        Test that title can be set
        """
        meta_data = McStasMetaData()
        meta_data.set_title("title_test")
        self.assertEqual(meta_data.title, "title_test")

    def test_McStasMetaData_add_info_xlabel(self):
        """
        Test that xlabel can be set
        """
        meta_data = McStasMetaData()
        meta_data.set_xlabel("xlabel test")
        self.assertEqual(meta_data.xlabel, "xlabel test")

    def test_McStasMetaData_add_info_ylabel(self):
        """
        Test that ylabel can be set
        """
        meta_data = McStasMetaData()
        meta_data.set_ylabel("ylabel test")
        self.assertEqual(meta_data.ylabel, "ylabel test")

    def test_McStasMetaData_long_read_1d(self):
        """
        Test that extract_info can read appropriate info, 1d case
        """
        meta_data = McStasMetaData()
        meta_data.add_info("type", "array_1d(500)")
        meta_data.add_info("component", "test_A COMP")
        meta_data.add_info("filename", "test_A name")
        meta_data.add_info("xlimits", " 0.92 3.68")
        meta_data.add_info("xlabel", "test A xlabel")
        meta_data.add_info("ylabel", "test A ylabel")
        meta_data.add_info("title", "test A title")

        meta_data.extract_info()  # Converts info to attributes

        self.assertIsInstance(meta_data.dimension, int)
        self.assertEqual(meta_data.dimension, 500)
        self.assertIs(meta_data.component_name, "test_A COMP")
        self.assertIs(meta_data.filename, "test_A name")
        self.assertEqual(len(meta_data.limits), 2)
        self.assertEqual(meta_data.limits[0], 0.92)
        self.assertEqual(meta_data.limits[1], 3.68)
        self.assertIs(meta_data.xlabel, "test A xlabel")
        self.assertIs(meta_data.ylabel, "test A ylabel")
        self.assertIs(meta_data.title, "test A title")

    def test_McStasMetaData_long_read_2d(self):
        """
        Test that extract_info can read appropriate info, 2d case
        """
        meta_data = McStasMetaData()
        meta_data.add_info("type", "array_2d(500, 12)")
        meta_data.add_info("component", "test_A_COMP")
        meta_data.add_info("filename", "test_A_name")
        meta_data.add_info("xlimits", "-2.4 5.99 0.92 3.68")
        meta_data.add_info("xlabel", "test A xlabel")
        meta_data.add_info("ylabel", "test A ylabel")
        meta_data.add_info("title", "test A title")

        meta_data.extract_info()  # Converts info to attributes

        self.assertEqual(len(meta_data.dimension), 2)
        self.assertEqual(meta_data.dimension[0], 500)
        self.assertEqual(meta_data.dimension[1], 12)
        self.assertIs(meta_data.component_name, "test_A_COMP")
        self.assertIs(meta_data.filename, "test_A_name")
        self.assertEqual(len(meta_data.limits), 4)
        self.assertEqual(meta_data.limits[0], -2.4)
        self.assertEqual(meta_data.limits[1], 5.99)
        self.assertEqual(meta_data.limits[2], 0.92)
        self.assertEqual(meta_data.limits[3], 3.68)
        self.assertIs(meta_data.xlabel, "test A xlabel")
        self.assertIs(meta_data.ylabel, "test A ylabel")
        self.assertIs(meta_data.title, "test A title")


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