11import pathlib
22
3- import numpy as np
43import pytest
54
65import RATapi as RAT
7- from RATapi .utils .enums import BackgroundActions
86from 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" )
1512def 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 ],
0 commit comments