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.
98 lines
3.0 KiB
98 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
|
|
|