11import  pytest 
2- import  sys 
32
4- if  sys .version_info  <  (3 , 10 ):
5-     import  importlib_resources  as  resources   # Backport for older versions 
6- else :
7-     from  importlib  import  resources   # Standard from Python 3.9+ 
8- 
9- import  pymatreader 
103import  numpy  as  np 
114
125from  pyRadPlan .ct  import  validate_ct 
@@ -156,13 +149,11 @@ def test_create_stf_from_stf(sample_stf_snake):
156149        assert  all (isinstance (ray .beamlets , list ) for  ray  in  beam .rays )
157150
158151
159- def  test_stfgen_to_stf ():
160-     files  =  resources .files ("pyRadPlan.data.phantoms" )
161-     path  =  files .joinpath ("TG119.mat" )
162-     tmp  =  pymatreader .read_mat (path )
152+ def  test_stfgen_to_stf (tg119_raw ):
153+     ct_raw , cst_raw  =  tg119_raw 
163154
164-     ct  =  validate_ct (tmp [ "ct" ] )
165-     cst  =  validate_cst (tmp [ "cst" ] , ct = ct )
155+     ct  =  validate_ct (ct_raw )
156+     cst  =  validate_cst (cst_raw , ct = ct )
166157    pln  =  IonPlan (radiation_mode = "protons" , machine = "Generic" )
167158
168159    stfgen  =  StfGeneratorIMPT (pln )
@@ -183,26 +174,16 @@ def test_stfgen_to_stf():
183174        assert  all (isinstance (ray .beamlets , list ) for  ray  in  beam .rays )
184175
185176
186- def  test_from_and_to_matrad ():
187-     # from scipy.io import savemat 
188- 
189-     files  =  resources .files ("pyRadPlan.data.stf" )
190-     path  =  files .joinpath ("matRad_stf.mat" )
191-     path_export  =  files .joinpath ("export_stf.mat" )
192-     matRad_file  =  pymatreader .read_mat (path )
193-     stf_from_matRad  =  create_stf (matRad_file )
177+ def  test_from_and_to_matrad (test_data_stf_n_beams_raw ):
178+     stf_from_matRad  =  create_stf (test_data_stf_n_beams_raw )
194179    stf_to_matrad  =  stf_from_matRad .to_matrad ()
195180
196181    assert  isinstance (stf_to_matrad , np .recarray )
197-     # savemat(path_export, stf_to_matrad, format='5', oned_as='column') 
198182
199183
200- def  test_from_matlab_one_beam ():
201-     # Special case of one beam since pymatreader handles 1D arrays differently 
202-     files  =  resources .files ("pyRadPlan.data.stf" )
203-     path  =  files .joinpath ("matRad_stf_onebeam.mat" )
204-     matRad_file  =  pymatreader .read_mat (path )
205-     stf_from_matRad  =  create_stf (matRad_file )
184+ def  test_from_matlab_one_beam (test_data_stf_one_beam_raw ):
185+     """Special case of one beam since pymatreader handles 1D arrays differently""" 
186+     stf_from_matRad  =  create_stf (test_data_stf_one_beam_raw )
206187    assert  stf_from_matRad .beams [0 ].gantry_angle  ==  0 
207188    assert  stf_from_matRad  is  not   None 
208189
@@ -213,11 +194,8 @@ def test_from_matlab_one_beam():
213194    assert  stf_from_matRad .bixel_index_per_beam_map .size  ==  stf_from_matRad .total_number_of_bixels 
214195
215196
216- def  test_from_matlab_multi_beam ():
217-     files  =  resources .files ("pyRadPlan.data.stf" )
218-     path  =  files .joinpath ("matRad_stf.mat" )
219-     matRad_file  =  pymatreader .read_mat (path )
220-     stf_from_matRad  =  create_stf (matRad_file )
197+ def  test_from_matlab_multi_beam (test_data_stf_n_beams_raw ):
198+     stf_from_matRad  =  create_stf (test_data_stf_n_beams_raw )
221199    assert  stf_from_matRad .beams [0 ].gantry_angle  ==  0 
222200    assert  stf_from_matRad  is  not   None 
223201
0 commit comments