from .conftest import EXAMPLE_DIR_WO_PARAMS, EXAMPLE_DIR_WITH_PARAMS def test_search_measurement_params_file_ok(example_dir): from sensospot_data.parameters import _search_measurement_params_file result = _search_measurement_params_file( example_dir / EXAMPLE_DIR_WITH_PARAMS ) assert result.suffix == ".svexp" def test_search_measurement_params_file_no_parameters_folder(example_dir): from sensospot_data.parameters import _search_measurement_params_file result = _search_measurement_params_file( example_dir / EXAMPLE_DIR_WO_PARAMS ) assert result is None def test_ssearch_measurement_params_file_parameters_file(tmpdir): from sensospot_data.parameters import _search_measurement_params_file params_dir = tmpdir / "Parameters" params_dir.mkdir() result = _search_measurement_params_file(tmpdir) assert result is None def test_parse_channel_info(example_dir): from sensospot_data.parameters import ( _search_measurement_params_file, _parse_measurement_params, ) params = _search_measurement_params_file( example_dir / EXAMPLE_DIR_WITH_PARAMS ) result = _parse_measurement_params(params) assert set(result.keys()) == {1, 2, 3} assert result[1] == ("green", 100) assert result[2] == ("red", 150) assert result[3] == ("red", 15) def test_get_measurement_params_file_found(example_dir): from sensospot_data.parameters import _get_measurement_params result = _get_measurement_params(example_dir / EXAMPLE_DIR_WITH_PARAMS) assert set(result.keys()) == {1, 2, 3} assert result[1] == ("green", 100) assert result[2] == ("red", 150) assert result[3] == ("red", 15) def test_get_measurement_params_file_not_found(example_dir): from sensospot_data.parameters import _get_measurement_params result = _get_measurement_params(example_dir / EXAMPLE_DIR_WO_PARAMS) assert result is None def test_add_measurement_params(exposure_df): from sensospot_data.parameters import ( _add_measurement_params, MeasurementParams, ) params = { 1: MeasurementParams("red", 10), 2: MeasurementParams("green", 20), 3: MeasurementParams("blue", 50), } result = _add_measurement_params(exposure_df, params) assert result["Exposure.Id"][0] == 1 assert result["Parameters.Channel"][0] == "red" assert result["Parameters.Time"][0] == 10 assert result["Exposure.Id"][1] == 2 assert result["Parameters.Channel"][1] == "green" assert result["Parameters.Time"][1] == 20 assert result["Exposure.Id"][2] == 3 assert result["Parameters.Channel"][2] == "blue" assert result["Parameters.Time"][2] == 50 def test_add_optional_measurement_parameters_with_params_file( exposure_df, example_dir ): from sensospot_data.parameters import add_optional_measurement_parameters folder = example_dir / EXAMPLE_DIR_WITH_PARAMS add_optional_measurement_parameters(exposure_df, folder) expected = [(1, "green", 100), (2, "red", 150), (3, "red", 15)] for exposure_id, channel, time in expected: mask = exposure_df["Exposure.Id"] == exposure_id example_row = exposure_df.loc[mask].iloc[0] assert example_row["Parameters.Channel"] == channel assert example_row["Parameters.Time"] == time def test_add_optional_measurement_parameters_without_params_file( exposure_df, example_dir ): from sensospot_data.parameters import add_optional_measurement_parameters from pandas import isnull folder = example_dir / EXAMPLE_DIR_WO_PARAMS add_optional_measurement_parameters(exposure_df, folder) for exposure_id in range(1, 4): mask = exposure_df["Exposure.Id"] == exposure_id example_row = exposure_df.loc[mask].iloc[0] assert isnull(example_row["Parameters.Channel"]) assert isnull(example_row["Parameters.Time"])