@@ -190,7 +190,7 @@ def test_bad_beamline_parameters_with_non_keyword_string_value_causes_error():
190190 beamline_parameters_to_dict (contents )
191191
192192
193- def test_beam_line_parameters_with_repeated_key_causes_error ():
193+ def test_beamline_parameters_with_repeated_key_causes_error ():
194194 input = "thing = 1\n thing = 2"
195195 with pytest .raises (ValueError , match = "Repeated key in parameters: thing" ):
196196 beamline_parameters_to_dict (input )
@@ -247,6 +247,33 @@ def test_detector_xy_lut_gives_expected_results():
247247 assert result == expected
248248
249249
250+ def test_generic_lut_model_get_value_function ():
251+ my_lut = GenericLookupTable (
252+ column_names = ["detector_distances_mm" , "beam_centre_x_mm" , "beam_centre_y_mm" ],
253+ rows = [[150 , 152.2 , 166.26 ], [800 , 152.08 , 160.96 ]],
254+ )
255+ assert my_lut .get_value ("detector_distances_mm" , 150 , "beam_centre_x_mm" ) == 152.2
256+ assert my_lut .get_value ("beam_centre_y_mm" , 160.96 , "detector_distances_mm" ) == 800
257+ with pytest .raises (ValueError ):
258+ # value doesn't exist
259+ my_lut .get_value ("beam_centre_y_mm" , 160.97 , "detector_distances_mm" )
260+ assert (
261+ my_lut .get_value (
262+ "beam_centre_x_mm" , 153 , "beam_centre_y_mm" , value_must_exist = False
263+ )
264+ == 166.26 # get closest value
265+ )
266+
267+
268+ def test_generic_lut_model_columns_function ():
269+ my_lut = GenericLookupTable (
270+ column_names = ["detector_distances_mm" , "beam_centre_x_mm" , "beam_centre_y_mm" ],
271+ rows = [[150 , 152.2 , 166.26 ], [800 , 152.08 , 160.96 ]],
272+ )
273+ expected_columns = [[150 , 800 ], [152.2 , 152.08 ], [166.26 , 160.96 ]]
274+ assert my_lut .columns () == expected_columns
275+
276+
250277def test_beamline_pitch_lut_gives_expected_result ():
251278 input = (
252279 "# Bragg pitch\n "
0 commit comments