You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.9 KiB
126 lines
3.9 KiB
4 years ago
|
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"])
|