|
|
|
import pandas
|
|
|
|
|
|
|
|
from .conftest import EXAMPLE_DIR_CSV_WITH_PARAMS, EXAMPLE_DIR_CSV_WO_PARAMS
|
|
|
|
|
|
|
|
|
|
|
|
def test_search_params_file_ok(example_dir):
|
|
|
|
from sensospot_parser.parameters import _search_params_file
|
|
|
|
|
|
|
|
result = _search_params_file(example_dir / EXAMPLE_DIR_CSV_WITH_PARAMS)
|
|
|
|
|
|
|
|
assert result.suffix == ".svexp"
|
|
|
|
|
|
|
|
|
|
|
|
def test_search_params_file_no_parameters_folder(example_dir):
|
|
|
|
from sensospot_parser.parameters import _search_params_file
|
|
|
|
|
|
|
|
result = _search_params_file(example_dir / EXAMPLE_DIR_CSV_WO_PARAMS)
|
|
|
|
|
|
|
|
assert result is None
|
|
|
|
|
|
|
|
|
|
|
|
def test_ssearch_measurement_params_file_parameters_file(tmpdir):
|
|
|
|
from sensospot_parser.parameters import _search_params_file
|
|
|
|
|
|
|
|
params_dir = tmpdir / "Parameters"
|
|
|
|
params_dir.mkdir()
|
|
|
|
|
|
|
|
result = _search_params_file(tmpdir)
|
|
|
|
|
|
|
|
assert result is None
|
|
|
|
|
|
|
|
|
|
|
|
def test_parse_channel_info(example_dir):
|
|
|
|
from sensospot_parser.parameters import (
|
|
|
|
_parse_measurement_params,
|
|
|
|
_search_params_file,
|
|
|
|
)
|
|
|
|
|
|
|
|
params = _search_params_file(example_dir / EXAMPLE_DIR_CSV_WITH_PARAMS)
|
|
|
|
result = _parse_measurement_params(params)
|
|
|
|
|
|
|
|
expected = pandas.DataFrame(
|
|
|
|
{
|
|
|
|
"Exposure.Id": [1, 2, 3],
|
|
|
|
"Parameters.Channel": ["green", "red", "red"],
|
|
|
|
"Parameters.Time": [100.0, 150.0, 15.0],
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
assert result.equals(expected)
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_measurement_params_file_found(example_dir):
|
|
|
|
from sensospot_parser.parameters import get_measurement_params
|
|
|
|
|
|
|
|
result = get_measurement_params(example_dir / EXAMPLE_DIR_CSV_WITH_PARAMS)
|
|
|
|
|
|
|
|
expected = pandas.DataFrame(
|
|
|
|
{
|
|
|
|
"Exposure.Id": [1, 2, 3],
|
|
|
|
"Parameters.Channel": ["green", "red", "red"],
|
|
|
|
"Parameters.Time": [100.0, 150.0, 15.0],
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
assert result.equals(expected)
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_measurement_params_file_not_found(example_dir):
|
|
|
|
from sensospot_parser.parameters import get_measurement_params
|
|
|
|
|
|
|
|
result = get_measurement_params(example_dir / EXAMPLE_DIR_CSV_WO_PARAMS)
|
|
|
|
|
|
|
|
assert result is None
|
|
|
|
|
|
|
|
|
|
|
|
def test_add_measurement_parameters_with_params_file(exposure_df, example_dir):
|
|
|
|
from sensospot_parser.parameters import add_measurement_parameters
|
|
|
|
|
|
|
|
folder = example_dir / EXAMPLE_DIR_CSV_WITH_PARAMS
|
|
|
|
exposure_df = add_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_measurement_parameters_without_params_file(
|
|
|
|
exposure_df, example_dir
|
|
|
|
):
|
|
|
|
from sensospot_parser.parameters import add_measurement_parameters
|
|
|
|
|
|
|
|
folder = example_dir / EXAMPLE_DIR_CSV_WO_PARAMS
|
|
|
|
exposure_df = add_measurement_parameters(exposure_df, folder)
|
|
|
|
|
|
|
|
for exposure_id in range(1, 4):
|
|
|
|
mask = exposure_df["Exposure.Id"] == exposure_id
|
|
|
|
one_exposure_data_frame = exposure_df.loc[mask]
|
|
|
|
assert one_exposure_data_frame["Parameters.Channel"].hasnans
|
|
|
|
assert one_exposure_data_frame["Parameters.Time"].hasnans
|