Parsing the numerical output from Sensovation SensoSpot image analysis.
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.

99 lines
3.0 KiB

import pandas
import pytest
from .conftest import EXAMPLE_DIR_WITH_PARAMS, EXAMPLE_DIR_WITH_RECORD
@pytest.fixture
def file_list(example_dir):
import pathlib
path = pathlib.Path(example_dir / EXAMPLE_DIR_WITH_RECORD)
tifs = (i.with_suffix(".tif") for i in path.glob("*.csv"))
return [i.name for i in tifs]
def test_search_records_file_ok(example_dir):
from sensospot_parser.recordtime import _search_records_file
result = _search_records_file(example_dir / EXAMPLE_DIR_WITH_RECORD)
assert result.suffix == ".xml"
def test_search_records_file_not_found(example_dir):
from sensospot_parser.recordtime import _search_records_file
result = _search_records_file(example_dir / EXAMPLE_DIR_WITH_PARAMS)
assert result is None
def test_iter_records(example_dir):
from sensospot_parser.recordtime import _iter_records, _search_records_file
path = _search_records_file(example_dir / EXAMPLE_DIR_WITH_RECORD)
result = list(_iter_records(path))
assert (
result[0][0] == "220307_SN0801_CHECK-01_SL1,11,9,14_MS_1_1_A01_1.tif"
)
assert result[0][1] == "3/7/2022 5:31:47 PM"
assert (
result[-1][0] == "220307_SN0801_CHECK-01_SL1,11,9,14_MS_1_1_D04_4.tif"
)
assert result[-1][1] == "3/7/2022 5:33:41 PM"
def test_parse_records_file(example_dir):
from sensospot_parser.recordtime import (
_parse_records_file,
_search_records_file,
)
path = _search_records_file(example_dir / EXAMPLE_DIR_WITH_RECORD)
result = _parse_records_file(path)
assert isinstance(result, pandas.DataFrame)
assert list(result.columns) == ["Analysis.Image", "Analysis.Datetime"]
assert len(result) == 64
def test_add_record_time_ok(example_dir, file_list):
from sensospot_parser.recordtime import add_record_time
df = pandas.DataFrame(file_list, columns=["Analysis.Image"])
result = add_record_time(df, example_dir / EXAMPLE_DIR_WITH_RECORD)
assert len(df) == len(result)
assert list(result.columns) == ["Analysis.Image", "Analysis.Datetime"]
assert not result["Analysis.Datetime"].hasnans
def test_add_record_time_unknown_file(example_dir, file_list):
from sensospot_parser.recordtime import add_record_time
extended_list = file_list + ["unknown file"]
df = pandas.DataFrame(extended_list, columns=["Analysis.Image"])
result = add_record_time(df, example_dir / EXAMPLE_DIR_WITH_RECORD)
assert len(df) == len(result)
assert list(result.columns) == ["Analysis.Image", "Analysis.Datetime"]
assert result["Analysis.Datetime"].hasnans
def test_add_record_time_no_record_xml(example_dir, file_list):
from sensospot_parser.recordtime import add_record_time
df = pandas.DataFrame(file_list, columns=["Analysis.Image"])
result = add_record_time(df, example_dir / EXAMPLE_DIR_WITH_PARAMS)
assert len(df) == len(result)
assert list(result.columns) == ["Analysis.Image", "Analysis.Datetime"]
assert result["Analysis.Datetime"].hasnans