"""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()