Skip to content

Commit e35252d

Browse files
committed
Test cases added for the PhaseSpace
Signed-off-by: Deepanshu <deepanshu2017@gmail.com>
1 parent 91638a3 commit e35252d

File tree

2 files changed

+68
-57
lines changed

2 files changed

+68
-57
lines changed

tests/test_events.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,10 @@ def test_getitem(self):
130130
test = (0.0, (0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0))
131131
self.assertAlmostEqual(item, test)
132132

133-
def test_unweight(self):
133+
def test_Unweight(self):
134134
h_event = host_events_2(10)
135135
h_event.setFlag(1, True)
136-
self.assertEqual(h_event.unweight(123), 10)
136+
self.assertEqual(h_event.Unweight(123), 10)
137137

138138
def test_setFlag(self):
139139
h_event = host_events_10(100)
@@ -245,10 +245,10 @@ def test_getitem(self):
245245
test = (0.0, (0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0))
246246
self.assertAlmostEqual(item, test)
247247

248-
def test_unweight(self):
248+
def test_Unweight(self):
249249
d_event = device_events_2(10)
250250
d_event.setFlag(1, True)
251-
self.assertEqual(d_event.unweight(123), 10)
251+
self.assertEqual(d_event.Unweight(123), 10)
252252

253253
def test_setFlag(self):
254254
d_event = device_events_10(100)

tests/test_phasespace.py

Lines changed: 64 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,24 @@
77
import random
88
import math
99

10-
import HydraPython as hp
10+
import HydraPython as hypy
1111

1212

13-
def foo(*data):
14-
p1 = data[0]
15-
p2 = data[1]
16-
p3 = data[2]
13+
def functor(*four_vector):
14+
p1 = four_vector[0]
15+
p2 = four_vector[1]
16+
p3 = four_vector[2]
17+
1718
p = p1 + p2 + p3
1819
q = p2 + p3
20+
1921
pd = p * p2
2022
pq = p * q
2123
qd = q * p2
2224
mp2 = p.mass2()
2325
mq2 = q.mass2()
2426
md2 = p2.mass2()
27+
2528
return (pd * mq2 - pq * qd) / math.sqrt((pq * pq - mq2 * mp2) * (qd * qd - mq2 * md2))
2629

2730

@@ -48,48 +51,48 @@ def check_equals(self, event1, tup):
4851
self.assertEqual(event1.GetNEvents(), len(tup))
4952
for first, second in zip(event1.Events(), tup):
5053
self.check_tuple(first, second)
51-
54+
5255
def test_default_constructor(self):
5356
vector_mass = 5.140252
5457
float_list = [1.1, 1.2, 0.242, 0.8385977]
55-
ps = hp.PhaseSpace4(vector_mass, float_list)
56-
self.assertIsInstance(ps, hp.PhaseSpace4, 'Failure: Not an instance of PhaseSpace_4')
58+
ps = hypy.PhaseSpace4(vector_mass, float_list)
59+
self.assertIsInstance(ps, hypy.PhaseSpace4, 'Failure: Not an instance of PhaseSpace_4')
5760

5861
def test_N_PhaseSpace(self):
5962
vector_mass = 9629.140252
60-
ps1 = hp.PhaseSpace1(vector_mass, random_floats(0.1, 2.2, 1))
61-
ps2 = hp.PhaseSpace2(vector_mass, random_floats(0.1, 2.2, 2))
62-
ps3 = hp.PhaseSpace3(vector_mass, random_floats(0.1, 2.2, 3))
63-
ps4 = hp.PhaseSpace4(vector_mass, random_floats(0.1, 2.2, 4))
64-
ps5 = hp.PhaseSpace5(vector_mass, random_floats(0.1, 2.2, 5))
65-
ps6 = hp.PhaseSpace6(vector_mass, random_floats(0.1, 2.2, 6))
66-
ps7 = hp.PhaseSpace7(vector_mass, random_floats(0.1, 2.2, 7))
67-
ps8 = hp.PhaseSpace8(vector_mass, random_floats(0.1, 2.2, 8))
68-
ps9 = hp.PhaseSpace9(vector_mass, random_floats(0.1, 2.2, 9))
69-
ps10 = hp.PhaseSpace10(vector_mass, random_floats(0.1, 2.2, 10))
70-
self.assertIsInstance(ps1, hp.PhaseSpace1, 'Failure: Not an instance of PhaseSpace1')
71-
self.assertIsInstance(ps2, hp.PhaseSpace2, 'Failure: Not an instance of PhaseSpace2')
72-
self.assertIsInstance(ps3, hp.PhaseSpace3, 'Failure: Not an instance of PhaseSpace3')
73-
self.assertIsInstance(ps4, hp.PhaseSpace4, 'Failure: Not an instance of PhaseSpace4')
74-
self.assertIsInstance(ps5, hp.PhaseSpace5, 'Failure: Not an instance of PhaseSpace5')
75-
self.assertIsInstance(ps6, hp.PhaseSpace6, 'Failure: Not an instance of PhaseSpace6')
76-
self.assertIsInstance(ps7, hp.PhaseSpace7, 'Failure: Not an instance of PhaseSpace7')
77-
self.assertIsInstance(ps8, hp.PhaseSpace8, 'Failure: Not an instance of PhaseSpace8')
78-
self.assertIsInstance(ps9, hp.PhaseSpace9, 'Failure: Not an instance of PhaseSpace9')
79-
self.assertIsInstance(ps10, hp.PhaseSpace10, 'Failure: Not an instance of PhaseSpace10')
63+
# ps1 = hypy.PhaseSpace1(vector_mass, random_floats(0.1, 2.2, 1))
64+
ps2 = hypy.PhaseSpace2(vector_mass, random_floats(0.1, 2.2, 2))
65+
ps3 = hypy.PhaseSpace3(vector_mass, random_floats(0.1, 2.2, 3))
66+
ps4 = hypy.PhaseSpace4(vector_mass, random_floats(0.1, 2.2, 4))
67+
ps5 = hypy.PhaseSpace5(vector_mass, random_floats(0.1, 2.2, 5))
68+
ps6 = hypy.PhaseSpace6(vector_mass, random_floats(0.1, 2.2, 6))
69+
ps7 = hypy.PhaseSpace7(vector_mass, random_floats(0.1, 2.2, 7))
70+
ps8 = hypy.PhaseSpace8(vector_mass, random_floats(0.1, 2.2, 8))
71+
ps9 = hypy.PhaseSpace9(vector_mass, random_floats(0.1, 2.2, 9))
72+
ps10 = hypy.PhaseSpace10(vector_mass, random_floats(0.1, 2.2, 10))
73+
# self.assertIsInstance(ps1, hypy.PhaseSpace1, 'Failure: Not an instance of PhaseSpace1')
74+
self.assertIsInstance(ps2, hypy.PhaseSpace2, 'Failure: Not an instance of PhaseSpace2')
75+
self.assertIsInstance(ps3, hypy.PhaseSpace3, 'Failure: Not an instance of PhaseSpace3')
76+
self.assertIsInstance(ps4, hypy.PhaseSpace4, 'Failure: Not an instance of PhaseSpace4')
77+
self.assertIsInstance(ps5, hypy.PhaseSpace5, 'Failure: Not an instance of PhaseSpace5')
78+
self.assertIsInstance(ps6, hypy.PhaseSpace6, 'Failure: Not an instance of PhaseSpace6')
79+
self.assertIsInstance(ps7, hypy.PhaseSpace7, 'Failure: Not an instance of PhaseSpace7')
80+
self.assertIsInstance(ps8, hypy.PhaseSpace8, 'Failure: Not an instance of PhaseSpace8')
81+
self.assertIsInstance(ps9, hypy.PhaseSpace9, 'Failure: Not an instance of PhaseSpace9')
82+
self.assertIsInstance(ps10, hypy.PhaseSpace10, 'Failure: Not an instance of PhaseSpace10')
8083

8184
def test_seed(self):
8285
vector_mass = 5.140252
8386
float_list = [1.1, 1.2, 0.242, 0.8385977]
84-
ps = hp.PhaseSpace4(vector_mass, float_list)
87+
ps = hypy.PhaseSpace4(vector_mass, float_list)
8588
ps.SetSeed(123)
8689
self.assertEqual(123, ps.GetSeed())
8790

88-
def test_generate_body(self):
89-
vec4 = hp.Vector4R(5.2795, 0.0, 0.0, 0.0)
90-
ps = hp.PhaseSpace4(vec4.mass(), [3.096916, 0.493677, 0.13957018, 0.0195018])
91-
e_host = hp.hostEvents4(3)
92-
ps.Generatehost(vec4, e_host)
91+
def test_generator_1(self):
92+
vec4 = hypy.Vector4R(5.2795, 0.0, 0.0, 0.0)
93+
phsp = hypy.PhaseSpace4(vec4.mass(), [3.096916, 0.493677, 0.13957018, 0.0195018])
94+
e_host = hypy.host_events_4(3)
95+
phsp.GenerateOnhost(vec4, e_host)
9396
tup = ((0.00050889380,
9497
(3.313285880268, 0.981747490679, 0.005536704420, -0.650473537337),
9598
(0.528272074985, 0.154894458053, 0.006307332616, -0.106406434487),
@@ -105,36 +108,44 @@ def test_generate_body(self):
105108
(0.182102196040, -0.006495945222, 0.085854017877, -0.159272659014)))
106109
self.check_equals(e_host, tup)
107110

108-
e_device = hp.deviceEvents4(3)
109-
ps.Generatedevice(vec4, e_device)
111+
e_device = hypy.device_events_4(3)
112+
phsp.GenerateOndevice(vec4, e_device)
110113
self.check_equals(e_device, tup)
111114

112-
def test_average_on_body(self):
113-
vec4 = hp.Vector4R(5.2795, 0.0, 0.0, 0.0)
114-
p = hp.PhaseSpace4(vec4.mass(), [3.096916, 0.493677, 0.13957018, 0.0195018])
115-
tup1 = p.AverageONhost(vec4, foo, 10)
115+
def test_average_on(self):
116+
vec4 = hypy.Vector4R(5.2795, 0.0, 0.0, 0.0)
117+
p = hypy.PhaseSpace4(vec4.mass(), [3.096916, 0.493677, 0.13957018, 0.0195018])
118+
tup1 = p.AverageOnhost(vec4, functor, 10)
116119
tup2 = (-0.983049786694, 0.010451881904)
117120
self.assertAlmostEqual(tup1[0], tup2[0])
118121
self.assertAlmostEqual(tup1[1], tup2[1])
119122
# Below will segfault due to GIL
120-
# tup1 = p.AverageONdevice(vec4, foo, 10)
123+
# tup1 = p.AverageOndevice(vec4, foo, 10)
121124
# tup2 = (-0.983049786694, 0.010451881904)
122125
# self.assertAlmostEqual(tup1[0], tup2[0])
123126
# self.assertAlmostEqual(tup1[1], tup2[1])
124127

125-
126-
def test_average_on_body2(self):
127-
pass
128-
129-
def test_generate_2(self):
130-
pass
131-
132128
def test_evaluate(self):
133-
pass
134-
135-
def test_evaluate_2(self):
136-
pass
137-
129+
b0_mass = 5.27955
130+
jpsi_mass = 3.0969
131+
k_mass = 0.493677
132+
pi_mass = 0.13957061
133+
134+
b0 = hypy.Vector4R(b0_mass, 0.0, 0.0, 0.0)
135+
masses = [jpsi_mass, k_mass, pi_mass]
136+
phsp = hypy.PhaseSpace3(b0_mass, masses)
137+
138+
result = hypy.host_vector_float2(5)
139+
phsp.EvaluateOnhost(b0, result, functor)
140+
tup = ((0.004857093031, -0.999950534243),
141+
(0.006868934284, -0.999842558622),
142+
(0.011390565091, -0.999882127917),
143+
(0.016108047503, -0.999560206432),
144+
(0.020888558031, -0.999196543388))
145+
146+
for i in range(5):
147+
self.assertAlmostEqual(tup[i][0], result[i][0])
148+
self.assertAlmostEqual(tup[i][1], result[i][1])
138149

139150

140151
if __name__ == '__main__':

0 commit comments

Comments
 (0)