Skip to content

Commit e1f1f0a

Browse files
committed
simplify this test
1 parent d636aea commit e1f1f0a

File tree

1 file changed

+33
-57
lines changed

1 file changed

+33
-57
lines changed

tests/test_optics.py

Lines changed: 33 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
import numpy as np
44
import pytest
5-
6-
from pyhdtoolkit.models.beam import BeamParameters
5+
from numpy.testing import assert_allclose
76
from pyhdtoolkit.optics import ripken, twiss
87
from pyhdtoolkit.optics.beam import Beam, compute_beam_parameters
98
from pyhdtoolkit.optics.rdt import determine_rdt_line, rdt_to_order_and_type
@@ -21,96 +20,73 @@
2120

2221

2322
def test_gamma_rel():
24-
assert Beam(6500, 2.5e-6).gamma_rel == 6928.628011131436
23+
assert_allclose(Beam(6500, 2.5e-6).gamma_rel, 6928.628011131436)
2524

2625

2726
def test_beta_rel():
28-
assert Beam(6500, 2.5e-6).beta_rel == 1.0000000104153894
27+
assert_allclose(Beam(6500, 2.5e-6).beta_rel, 1.0000000104153894)
2928

3029

3130
def test_brho():
32-
assert Beam(6500, 2.5e-6).brho == 7.227222137900961e-05
31+
assert_allclose(Beam(6500, 2.5e-6).brho, 7.227222137900961e-05)
3332

3433

3534
def test_normalized_emittance():
36-
assert Beam(6500, 2.5e-6).nemitt == 0.01732157020823949
35+
assert_allclose(Beam(6500, 2.5e-6).nemitt, 0.01732157020823949)
3736

3837

3938
def test_rms_emittance():
40-
assert Beam(6500, 2.5e-6).rms_emittance == 3.6082179183888383e-10
39+
assert_allclose(Beam(6500, 2.5e-6).rms_emittance, 3.6082179183888383e-10)
4140

4241

4342
def test_lhc_revolution_frequency():
4443
lhc_beam = Beam(6500, 2.5e-6)
45-
assert lhc_beam.revolution_frequency() == 11245.499628523643
44+
assert_allclose(lhc_beam.revolution_frequency(), 11245.499628523643)
4645

4746

4847
@pytest.mark.parametrize(
4948
("alpha_p", "result"),
5049
[(0, 2.083077890845299e-08), (1e-5, -9.979169221091548e-06), (-500, 500.0000000208308)],
5150
)
5251
def test_eta(alpha_p, result):
53-
assert Beam(6500, 2.5e-6).eta(alpha_p) == result
52+
assert_allclose(Beam(6500, 2.5e-6).eta(alpha_p), result)
5453

5554

5655
@pytest.mark.parametrize(("alpha_p", "result"), [(1e-5, 316.2277660168379), (500, 0.044721359549995794)])
5756
def test_gamma_transition(alpha_p, result):
58-
assert Beam(6500, 2.5e-6).gamma_transition(alpha_p) == result
57+
assert_allclose(Beam(6500, 2.5e-6).gamma_transition(alpha_p), result)
5958

6059

6160
def test_gamma_transition_raises():
6261
with pytest.raises(ZeroDivisionError):
6362
Beam(6500, 2.5e-6).gamma_transition(0)
6463

6564

66-
@pytest.mark.parametrize(
67-
("pc_gev", "en_x_m", "en_y_m", "delta_p", "result"),
68-
[
69-
(
70-
1.9,
71-
5e-6,
72-
5e-6,
73-
2e-3,
74-
BeamParameters(
75-
pc_GeV=1.9,
76-
B_rho_Tm=6.3376399999999995,
77-
E_0_GeV=0.9382720813,
78-
E_tot_GeV=2.1190456574946737,
79-
E_kin_GeV=1.1807735761946736,
80-
gamma_rel=2.258455409393277,
81-
beta_rel=0.8966300434726596,
82-
nemitt_x=5e-06,
83-
nemitt_y=5e-06,
84-
deltap_p=0.002,
85-
),
86-
),
87-
(
88-
19,
89-
5e-6,
90-
5e-6,
91-
2e-4,
92-
BeamParameters(
93-
pc_GeV=19,
94-
B_rho_Tm=63.3764,
95-
E_0_GeV=0.9382720813,
96-
E_tot_GeV=19.023153116624673,
97-
E_kin_GeV=18.084881035324674,
98-
gamma_rel=20.274666054506927,
99-
beta_rel=0.9987828980567665,
100-
nemitt_x=5e-06,
101-
nemitt_y=5e-06,
102-
deltap_p=0.0002,
103-
),
104-
),
105-
],
106-
)
107-
def test_beam_parameters(pc_gev, en_x_m, en_y_m, delta_p, result):
108-
assert compute_beam_parameters(pc_gev, en_x_m, en_y_m, delta_p) == result
65+
66+
def test_beam_parameters():
67+
pc_gev = 19
68+
nemitt_x = 5e-6
69+
nemitt_y = 5e-6
70+
delta_p = 2e-4
71+
built = compute_beam_parameters(pc_gev, nemitt_x, nemitt_y, delta_p)
72+
73+
# check the specified properties
74+
assert_allclose(built.pc_GeV, pc_gev)
75+
assert_allclose(built.nemitt_x, nemitt_x)
76+
assert_allclose(built.nemitt_y, nemitt_y)
77+
assert_allclose(built.deltap_p, delta_p)
78+
# check the calculated properties
79+
assert_allclose(built.B_rho_Tm, 63.33333)
80+
assert_allclose(built.E_tot_GeV, 19.023153116624673)
81+
assert_allclose(built.E_kin_GeV, 18.084881035324674)
82+
assert_allclose(built.beta_rel, 0.9987828980567665)
83+
assert_allclose(built.gamma_rel, 20.274666054506927)
84+
10985

11086

11187
def test_beam_size(_fake_coordinates):
112-
assert np.allclose(ripken._beam_size(_fake_coordinates), _fake_coordinates.std()) # noqa: SLF001
113-
assert np.allclose(
88+
assert_allclose(ripken._beam_size(_fake_coordinates), _fake_coordinates.std()) # noqa: SLF001
89+
assert_allclose(
11490
ripken._beam_size(_fake_coordinates, method="rms"), # noqa: SLF001
11591
np.sqrt(np.mean(np.square(_fake_coordinates))),
11692
)
@@ -126,9 +102,9 @@ def test_beam_size_raises(_fake_coordinates):
126102
@pytest.mark.parametrize("gemitt_x", [5e-6, 2.75e-6, 3.5e-6])
127103
@pytest.mark.parametrize("gemitt_y", [5e-6, 2.75e-6, 3.5e-6])
128104
def test_lebedev_size_floats(beta11, beta21, gemitt_x, gemitt_y):
129-
assert ripken.lebedev_beam_size(beta1_=beta11, beta2_=beta21, gemitt_x=gemitt_x, gemitt_y=gemitt_y) == np.sqrt(
105+
assert_allclose(ripken.lebedev_beam_size(beta1_=beta11, beta2_=beta21, gemitt_x=gemitt_x, gemitt_y=gemitt_y), np.sqrt(
130106
gemitt_x * beta11 + gemitt_y * beta21
131-
)
107+
))
132108

133109

134110
def test_courant_snyder_transform():

0 commit comments

Comments
 (0)