1
# This file is part of MAUS: http://micewww.pp.rl.ac.uk:8080/projects/maus
3
# MAUS is free software: you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation, either version 3 of the License, or
6
# (at your option) any later version.
8
# MAUS is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
# GNU General Public License for more details.
13
# You should have received a copy of the GNU General Public License
14
# along with MAUS. If not, see <http://www.gnu.org/licenses/>.
16
# pylint: disable=C0103
19
Test maus_cpp.phase_space_vector
25
import maus_cpp.phase_space_vector
26
from maus_cpp.phase_space_vector import create_from_coordinates
28
class PhaseSpaceVectorTestCase(unittest.TestCase): # pylint: disable=R0904
29
"""Test maus_cpp.phase_space_vector"""
32
"""Test maus_cpp.phase_space_vector.init()"""
33
psv = maus_cpp.phase_space_vector.PhaseSpaceVector()
34
psv_as_list = eval(psv.__repr__())
35
for var in psv_as_list:
36
self.assertAlmostEqual(var, 0.)
38
def test_create_from_coordinates(self):
39
"""Test maus_cpp.phase_space_vector.create_from_coordinates()"""
40
psv = maus_cpp.phase_space_vector.create_from_coordinates \
41
(t=1, energy=2., x=3., px=4., y=5., py=6.)
42
self.assertAlmostEqual(psv.get_t(), 1.)
43
self.assertAlmostEqual(psv.get_energy(), 2.)
44
self.assertAlmostEqual(psv.get_x(), 3.)
45
self.assertAlmostEqual(psv.get_px(), 4.)
46
self.assertAlmostEqual(psv.get_y(), 5.)
47
self.assertAlmostEqual(psv.get_py(), 6.)
49
psv = create_from_coordinates(t=1, energy=2., x=3., px=4., y=5.)
50
self.assertTrue(False, "Expected type error")
54
psv = create_from_coordinates(t=1, energy=2., x=3., px=4., py=6.)
55
self.assertTrue(False, "Expected type error")
59
psv = create_from_coordinates(t=1, energy=2., x=3., y=5., py=6.)
60
self.assertTrue(False, "Expected type error")
64
psv = create_from_coordinates(t=1, energy=2., px=4., y=5., py=6.)
65
self.assertTrue(False, "Expected type error")
69
psv = create_from_coordinates(t=1, x=3., px=4., y=5., py=6.)
70
self.assertTrue(False, "Expected type error")
74
psv = create_from_coordinates(energy=2., x=3., px=4., y=5., py=6.)
75
self.assertTrue(False, "Expected type error")
79
def test_get_set(self):
80
"""Test maus_cpp.phase_space_vector get_<> and set_<>"""
81
psv = create_from_coordinates(t=1, energy=2., x=3., px=4., y=5., py=6.)
83
method_list = [(psv.get_t, psv.set_t),
84
(psv.get_energy, psv.set_energy),
85
(psv.get_x, psv.set_x),
86
(psv.get_px, psv.set_px),
87
(psv.get_y, psv.set_y),
88
(psv.get_py, psv.set_py)]
89
for getter, setter in method_list:
90
self.assertAlmostEqual(getter(bob="nonsense"), test_value)
91
setter(test_value+10.)
92
self.assertAlmostEqual(getter(), test_value+10.)
93
setter(value=test_value+10.)
95
setter(value=test_value+10., bob="nonsense")
96
self.assertTrue(False, "Should have thrown an exception")
102
"""Test maus_cpp.PhaseSpaceVector.__repr__ and __str__"""
103
psv = create_from_coordinates(t=1, energy=2., x=3., px=4., y=5., py=6.)
104
psv_as_list = eval(psv.__repr__())
105
for i, value in enumerate(psv_as_list):
106
self.assertAlmostEqual(value, float(i+1))
107
psv_as_list = eval(psv.__str__())
108
for i, value in enumerate(psv_as_list):
109
self.assertAlmostEqual(value, float(i+1))
111
if __name__ == "__main__":