diff --git a/tests/test_calcat_interface.py b/tests/test_calcat_interface.py index 6cd93518558a228252ee0a64a85a94937a7ba9ee..b838a07fc16a3a032990affa49781c1d05f76c57 100644 --- a/tests/test_calcat_interface.py +++ b/tests/test_calcat_interface.py @@ -1,13 +1,18 @@ """ TEST CALCAT INTERFACE: -1- AGIPD_CalibrationData/ CalibrationData / metadata() -2- physical_detector_units(). +All the tests run with client = None """ +import numpy as np import pytest -from cal_tools.calcat_interface import AGIPD_CalibrationData, DSSC_CalibrationData +from cal_tools.calcat_interface import ( + AGIPD_CalibrationData, + DSSC_CalibrationData, + JUNGFRAU_CalibrationData, + LPD_CalibrationData, +) @pytest.mark.requires_gpfs @@ -20,9 +25,9 @@ from cal_tools.calcat_interface import AGIPD_CalibrationData, DSSC_CalibrationDa ] ) -def test_AGIPD_CalibrationData(mod, mod_naming): +def test_AGIPD_CalibrationData_metadata(mod, mod_naming): """Test CalibrationData through AGIPD_CalibrationData - and test metadata method. + and test metadata() method. Args: mod (str): Module name @@ -43,7 +48,18 @@ def test_AGIPD_CalibrationData(mod, mod_naming): module_naming=mod_naming ).metadata() assert isinstance(agipd_md, dict) + # Check correct module naming (da, qm, modno) assert list(agipd_md.keys())[0] == mod + # closest_ccv_by_time_by_condition + assert [ + "begin_validity_at", + "cc_id", "cc_name", + "ccv_id", "ccv_name", + "condition_id", "dataset", + "end_idx", "end_validity_at", + "path", "physical_name", + "raw_data_location", "start_idx", + ] == sorted(list(agipd_md[mod]["Offset"].keys())) @pytest.mark.parametrize( @@ -55,14 +71,14 @@ def test_AGIPD_CalibrationData(mod, mod_naming): ] ) -def test_physical_detector_units(mod, mod_naming): - """Test physical_detector_units property. +def test_DSSC_physical_detector_units(mod, mod_naming): + """Test physical_detector_units property and DSSC_CalibrationData. Args: mod (str): Module name mod_naming (str): Selected module naming """ - agipd_cal = DSSC_CalibrationData( + dssc_cal = DSSC_CalibrationData( detector_name="SCS_DET_DSSC1M-1", sensor_bias_voltage=300, memory_cells=400, @@ -72,10 +88,63 @@ def test_physical_detector_units(mod, mod_naming): encoded_gain=None, event_at="2020-01-07 13:26:48.00", modules=[mod], - client=None, module_naming=mod_naming ) - pdus = agipd_cal.physical_detector_units + pdus = dssc_cal.physical_detector_units assert isinstance(pdus, dict) assert len(pdus) == 16 assert list(pdus.keys())[0] == mod + + +@pytest.mark.requires_gpfs +@pytest.mark.parametrize( + "mod,mod_naming", + [ + ("JNGFR01", "da"), + (1, "modno"), + + ] +) +def test_JUNGFRAU_CalibrationData_ndarray(mod, mod_naming): + """Test ndarray() through JUNGFRAU_CalibrationData. + + Args: + mod (str): Module name + mod_naming (str): Selected module naming + """ + + jf_cal = JUNGFRAU_CalibrationData( + detector_name="SPB_IRDA_JF4M", + sensor_bias_voltage=180, + memory_cells=1, + integration_time=10, + gain_setting=0, + gain_mode=0, + modules=[mod], + module_naming=mod_naming, + event_at="2022-07-11 13:26:48.00", + ) + assert isinstance(jf_cal.ndarray(mod, "Offset10Hz"), np.ndarray) + + +@pytest.mark.requires_gpfs +def test_LPD_CalibrationData_ndarray(): + """Test ndarray_map() through LPD_CalibrationData. + + Args: + mod (str): Module name + mod_naming (str): Selected module naming + """ + + lpd_cal = LPD_CalibrationData( + detector_name="FXE_DET_LPD1M-1", + sensor_bias_voltage=250, + memory_cells=512, + feedback_capacitor=5.0, + event_at="2022-07-11 13:26:48.00", + ) + const_map = lpd_cal.ndarray_map() + assert isinstance(const_map, dict) + assert "LPD00" in const_map.keys() + assert "Offset" in const_map["LPD00"].keys() + assert isinstance(const_map["LPD00"]["Offset"], np.ndarray)