47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
"""Smoke-test read_idf_file on IDFH across the corpus."""
|
|
from __future__ import annotations
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
REPO = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(REPO))
|
|
|
|
from micromate.idf_file import read_idf_file
|
|
|
|
|
|
def main():
|
|
target = REPO / "tests/fixtures/THORDATA_example/THORDATA_example/UPMC Presby/UM11719/UM11719_20231219162648.IDFH"
|
|
result = read_idf_file(target)
|
|
ev = result.event
|
|
print(f"=== {target.name} ===")
|
|
print(f" signature: {result.signature}")
|
|
print(f" serial: {ev.serial}")
|
|
print(f" timestamp: {ev.timestamp}")
|
|
print(f" sample_rate: {ev.sample_rate}")
|
|
print(f" kind: {ev.kind}")
|
|
print(f" intervals: {len(result.intervals or [])}")
|
|
print(f" peaks: T={ev.peaks.transverse_ips:.4f} V={ev.peaks.vertical_ips:.4f} L={ev.peaks.longitudinal_ips:.4f}")
|
|
print()
|
|
|
|
root = REPO / "tests/fixtures/THORDATA_example"
|
|
files = list(root.rglob("*.IDFH"))
|
|
ok = fail = nyi = 0
|
|
total_intervals = 0
|
|
for f in files:
|
|
try:
|
|
r = read_idf_file(f)
|
|
ok += 1
|
|
total_intervals += len(r.intervals or [])
|
|
except NotImplementedError:
|
|
nyi += 1
|
|
except Exception as exc:
|
|
fail += 1
|
|
if fail <= 3:
|
|
print(f" FAIL: {f.name}: {type(exc).__name__}: {exc}")
|
|
print(f"Corpus: {len(files)} IDFH files | ok={ok} fail={fail} nyi={nyi}")
|
|
print(f"Total intervals decoded: {total_intervals}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|