Skip to content

Commit 37b0478

Browse files
committed
Addresses review comments
1 parent 33f98ca commit 37b0478

File tree

7 files changed

+9
-192
lines changed

7 files changed

+9
-192
lines changed

RATapi/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ class AbsorptionLayer(RATModel, populate_by_name=True):
516516
name: str = Field(default_factory=lambda: f"New Layer {next(layer_number)}", min_length=1)
517517
thickness: str
518518
SLD_real: str = Field(validation_alias="SLD")
519-
SLD_imaginary: str = ""
519+
SLD_imaginary: str
520520
roughness: str
521521
hydration: str = ""
522522
hydrate_with: Hydration = Hydration.BulkOut

RATapi/project.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,9 @@ def set_absorption(self) -> "Project":
529529
handle = self.layers._class_handle.__name__
530530
if self.absorption and handle == "Layer":
531531
for layer in self.layers:
532-
layer_list.append(RATapi.models.AbsorptionLayer(**layer.model_dump()))
532+
layer_params = layer.model_dump()
533+
layer_params["SLD_imaginary"] = ""
534+
layer_list.append(RATapi.models.AbsorptionLayer(**layer_params))
533535
self.layers.data = layer_list
534536
self.layers._class_handle = RATapi.models.AbsorptionLayer
535537
elif not self.absorption and handle == "AbsorptionLayer":

RATapi/utils/enums.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@ class Languages(RATEnum):
157157
class Hydration(RATEnum):
158158
"""Options for the 'hydrate with' parameter of a Layer."""
159159

160-
None_ = "none"
161160
BulkIn = "bulk in"
162161
BulkOut = "bulk out"
163162

tests/test_data/orso_validation.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

tests/test_enums.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
(Languages, "cpp", Languages.Cpp),
5050
(Languages, "python", Languages.Python),
5151
(Languages, "matlab", Languages.Matlab),
52-
(Hydration, "none", Hydration.None_),
5352
(Hydration, "bulk in", Hydration.BulkIn),
5453
(Hydration, "bulk out", Hydration.BulkOut),
5554
(Priors, "uniform", Priors.Uniform),

tests/test_orso_validation.py

Lines changed: 4 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -1,182 +1,17 @@
11
import pathlib
22

3-
import numpy as np
43
import pytest
54

65
import RATapi as RAT
7-
from RATapi.utils.enums import BackgroundActions
86
from RATapi.utils.plotting import plot_ref_sld
97

10-
data_path = pathlib.Path(__file__).parents[0] / "test_data/ORSO_data"
11-
sld_values = np.loadtxt(data_path / "test_3_sld.dat")
8+
PROJECT_PATH = pathlib.Path(__file__).parents[0] / "test_data"
129

1310

1411
@pytest.fixture(scope="module")
1512
def orso_project():
16-
"""Set up a project with all the ORSO validation data included."""
17-
orso_project = RAT.Project(absorption=True)
18-
19-
orso_project.parameters.set_fields("Substrate Roughness", min=0.0)
20-
orso_project.background_parameters.set_fields(0, min=0.0, value=0.0)
21-
orso_project.resolution_parameters.set_fields(0, min=0.0, value=0.0)
22-
orso_project.scalefactors.set_fields(0, max=1.0, value=1.0)
23-
24-
orso_project.bulk_in.extend(
25-
[
26-
RAT.models.Parameter(name="Bulk In 0", value=2.07e-6),
27-
RAT.models.Parameter(name="Bulk In 1", value=0.0),
28-
RAT.models.Parameter(name="Bulk In 2", value=0.0),
29-
RAT.models.Parameter(name="Bulk In 3", value=0.0),
30-
RAT.models.Parameter(name="Bulk In 6", value=2.07e-6),
31-
RAT.models.Parameter(name="Bulk In 7", value=0.0),
32-
]
33-
)
34-
35-
orso_project.bulk_out.extend(
36-
[
37-
RAT.models.Parameter(name="Bulk Out 0", value=6.0e-6),
38-
RAT.models.Parameter(name="Bulk Out 1", value=2.0704e-6),
39-
RAT.models.Parameter(name="Bulk Out 2", value=6.36e-6),
40-
RAT.models.Parameter(name="Bulk Out 3", value=6.36e-6),
41-
RAT.models.Parameter(name="Bulk Out 6", value=6.36e-6),
42-
RAT.models.Parameter(name="Bulk Out 7", value=6.36e-6),
43-
]
44-
)
45-
46-
orso_project.data.extend(
47-
[
48-
RAT.models.Data(name="Data 0", data=np.loadtxt(data_path / "test_0.dat")),
49-
RAT.models.Data(name="Data 1", data=np.loadtxt(data_path / "test_1.dat")),
50-
RAT.models.Data(name="Data 2", data=np.loadtxt(data_path / "test_2.dat")),
51-
RAT.models.Data(name="Data 3", data=np.loadtxt(data_path / "test_3.dat")),
52-
RAT.models.Data(name="Data 6", data=np.loadtxt(data_path / "test_6.dat")),
53-
RAT.models.Data(name="Data 7", data=np.loadtxt(data_path / "test_7.dat")),
54-
]
55-
)
56-
57-
orso_project.contrasts.append(
58-
name="ORSO Contrast",
59-
background="Background 1",
60-
background_action=BackgroundActions.Add,
61-
scalefactor="Scalefactor 1",
62-
resolution="Resolution 1",
63-
resample=False,
64-
)
65-
66-
# Now set up parameters and layers for each test
67-
68-
# Test 0
69-
orso_project.parameters.append(name="Test 0 Layer 1 Thickness", value=100.0)
70-
orso_project.parameters.append(name="Test 0 Layer 1 SLD real", value=3.45e-6)
71-
orso_project.parameters.append(name="Test 0 Layer 1 SLD imaginary", value=1.0e-7)
72-
orso_project.parameters.append(name="Test 0 Layer 1 Roughness", value=3.0)
73-
74-
orso_project.layers.append(
75-
name="Test 0 Layer 1",
76-
thickness="Test 0 Layer 1 Thickness",
77-
SLD_real="Test 0 Layer 1 SLD real",
78-
SLD_imaginary="Test 0 Layer 1 SLD imaginary",
79-
roughness="Test 0 Layer 1 Roughness",
80-
)
81-
82-
orso_project.parameters.append(name="Test 0 Layer 2 Thickness", value=200.0)
83-
orso_project.parameters.append(name="Test 0 Layer 2 SLD real", value=5.0e-6)
84-
orso_project.parameters.append(name="Test 0 Layer 2 SLD imaginary", value=1.0e-8)
85-
orso_project.parameters.append(name="Test 0 Layer 2 Roughness", value=1.0)
86-
87-
orso_project.layers.append(
88-
name="Test 0 Layer 2",
89-
thickness="Test 0 Layer 2 Thickness",
90-
SLD_real="Test 0 Layer 2 SLD real",
91-
SLD_imaginary="Test 0 Layer 2 SLD imaginary",
92-
roughness="Test 0 Layer 2 Roughness",
93-
)
94-
95-
# Test 1
96-
orso_project.parameters.append(name="Test 1 Layer 1 Thickness", value=30.0)
97-
orso_project.parameters.append(name="Test 1 Layer 1 SLD real", value=-1.9493e-6)
98-
orso_project.parameters.append(name="Test 1 Layer 1 SLD imaginary", value=0.0)
99-
orso_project.parameters.append(name="Test 1 Layer 1 Roughness", value=0.0)
100-
101-
orso_project.layers.append(
102-
name="Test 1 Layer 1",
103-
thickness="Test 1 Layer 1 Thickness",
104-
SLD_real="Test 1 Layer 1 SLD real",
105-
SLD_imaginary="Test 1 Layer 1 SLD imaginary",
106-
roughness="Test 1 Layer 1 Roughness",
107-
)
108-
109-
orso_project.parameters.append(name="Test 1 Layer 2 Thickness", value=70.0)
110-
orso_project.parameters.append(name="Test 1 Layer 2 SLD real", value=9.4245e-6)
111-
orso_project.parameters.append(name="Test 1 Layer 2 SLD imaginary", value=0.0)
112-
orso_project.parameters.append(name="Test 1 Layer 2 Roughness", value=0.0)
113-
114-
orso_project.layers.append(
115-
name="Test 1 Layer 2",
116-
thickness="Test 1 Layer 2 Thickness",
117-
SLD_real="Test 1 Layer 2 SLD real",
118-
SLD_imaginary="Test 1 Layer 2 SLD imaginary",
119-
roughness="Test 1 Layer 2 Roughness",
120-
)
121-
122-
# Test 2
123-
orso_project.parameters.append(name="Test 2 Layer 1 Thickness", value=0.0)
124-
orso_project.parameters.append(name="Test 2 Layer 1 SLD real", value=0.0)
125-
orso_project.parameters.append(name="Test 2 Layer 1 SLD imaginary", value=0.0)
126-
orso_project.parameters.append(name="Test 2 Layer 1 Roughness", value=0.0)
127-
128-
orso_project.layers.append(
129-
name="Test 2 Layer 1",
130-
thickness="Test 2 Layer 1 Thickness",
131-
SLD_real="Test 2 Layer 1 SLD real",
132-
SLD_imaginary="Test 2 Layer 1 SLD imaginary",
133-
roughness="Test 2 Layer 1 Roughness",
134-
)
135-
136-
# Test 3
137-
orso_project.parameters.append(name="Test 3 Thickness", value=0.025)
138-
orso_project.parameters.append(name="Test 3 SLD imaginary", value=0.0)
139-
orso_project.parameters.append(name="Test 3 Roughness", value=0.0)
140-
141-
for i, sld in enumerate(sld_values):
142-
orso_project.parameters.append(name=f"Test 3 Layer {i} SLD real", value=sld)
143-
orso_project.layers.append(
144-
name=f"Test 3 Layer {i}",
145-
thickness="Test 3 Thickness",
146-
SLD_real=f"Test 3 Layer {i} SLD real",
147-
SLD_imaginary="Test 3 SLD imaginary",
148-
roughness="Test 3 Roughness",
149-
)
150-
151-
# Test 6
152-
orso_project.parameters.append(name="Test 6 Layer 1 Thickness", value=1200.0)
153-
orso_project.parameters.append(name="Test 6 Layer 1 SLD real", value=4.66e-6)
154-
orso_project.parameters.append(name="Test 6 Layer 1 SLD imaginary", value=1.6e-8)
155-
orso_project.parameters.append(name="Test 6 Layer 1 Roughness", value=10.0)
156-
157-
orso_project.layers.append(
158-
name="Test 6 Layer 1",
159-
thickness="Test 6 Layer 1 Thickness",
160-
SLD_real="Test 6 Layer 1 SLD real",
161-
SLD_imaginary="Test 6 Layer 1 SLD imaginary",
162-
roughness="Test 6 Layer 1 Roughness",
163-
)
164-
165-
# Test 7
166-
orso_project.parameters.append(name="Test 7 Layer 1 Thickness", value=1200.0)
167-
orso_project.parameters.append(name="Test 7 Layer 1 SLD real", value=4.66e-6)
168-
orso_project.parameters.append(name="Test 7 Layer 1 SLD imaginary", value=1.6e-8)
169-
orso_project.parameters.append(name="Test 7 Layer 1 Roughness", value=10.0)
170-
171-
orso_project.layers.append(
172-
name="Test 7 Layer 1",
173-
thickness="Test 7 Layer 1 Thickness",
174-
SLD_real="Test 7 Layer 1 SLD real",
175-
SLD_imaginary="Test 7 Layer 1 SLD imaginary",
176-
roughness="Test 7 Layer 1 Roughness",
177-
)
178-
179-
return orso_project
13+
"""Load a project with all the ORSO validation data included."""
14+
return RAT.Project.load(pathlib.Path(PROJECT_PATH, "orso_validation.json"))
18015

18116

18217
@pytest.mark.parametrize(
@@ -185,7 +20,7 @@ def orso_project():
18520
(0, 5.0, ["Test 0 Layer 1", "Test 0 Layer 2"]),
18621
(1, 0.0, ["Test 1 Layer 1", "Test 1 Layer 2"] * 10),
18722
(2, 3.0, ["Test 2 Layer 1"]),
188-
(3, 0.0, [f"Test 3 Layer {i}" for i in range(len(sld_values))]),
23+
(3, 0.0, [f"Test 3 Layer {i}" for i in range(2001)]),
18924
(6, 3.0, ["Test 6 Layer 1"]),
19025
(7, 3.0, ["Test 7 Layer 1"]),
19126
],

tests/test_project.py

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -206,25 +206,6 @@ def test_initialise_wrong_layers(
206206
RATapi.Project(absorption=absorption, layers=RATapi.ClassList(input_model(**model_params)))
207207

208208

209-
@pytest.mark.parametrize("absorption, model", [(False, RATapi.models.Layer), (True, RATapi.models.AbsorptionLayer)])
210-
def test_initialise_ambiguous_layers(absorption: bool, model: RATapi.models.RATModel):
211-
"""If a sequence of dictionaries is passed to 'contrasts', convert them to the correct model for the calculation."""
212-
proj = RATapi.Project(
213-
absorption=absorption,
214-
parameters=RATapi.ClassList(
215-
[
216-
RATapi.models.Parameter(name="Test Thickness"),
217-
RATapi.models.Parameter(name="Test SLD"),
218-
RATapi.models.Parameter(name="Test Roughness"),
219-
]
220-
),
221-
layers=RATapi.ClassList(
222-
[{"name": "Contrast 1", "thickness": "Test Thickness", "SLD": "Test SLD", "roughness": "Test Roughness"}]
223-
),
224-
)
225-
assert proj.layers._class_handle == model
226-
227-
228209
@pytest.mark.parametrize(
229210
["input_model", "calculation", "actual_model_name"],
230211
[

0 commit comments

Comments
 (0)