"""Verify build_bw_report_from_idf against a known sidecar.""" from __future__ import annotations import json import sys from pathlib import Path REPO = Path(__file__).resolve().parents[1] sys.path.insert(0, str(REPO)) from micromate.idf_ascii_report import parse_idf_report from micromate.idf_to_bw_report import build_bw_report_from_idf from micromate.idf_file import read_idf_file def show(prefix: str, d: dict, indent: int = 0): for k, v in d.items(): if isinstance(v, dict): print(f"{' '*indent}{prefix}{k}:") show("", v, indent + 1) else: print(f"{' '*indent}{prefix}{k}: {v!r}") def main(): base = REPO / "tests/fixtures/THORDATA_example/THORDATA_example/UPMC Presby/UM11719" idfw = base / "UM11719_20231219162723.IDFW" txt = base / "TXT" / f"{idfw.name}.txt" report_dict = parse_idf_report(txt.read_text(errors="replace")) res = read_idf_file(idfw) bw = build_bw_report_from_idf(report_dict, binary_md=res.binary_metadata) print("=== IDFW → bw_report ===") show("", bw) print() print("=== IDFH (single trigger row) ===") idfh = base / "UM11719_20231219162648.IDFH" txt_h = base / "TXT" / f"{idfh.name}.txt" rh = parse_idf_report(txt_h.read_text(errors="replace")) res_h = read_idf_file(idfh) bw_h = build_bw_report_from_idf(rh, binary_md=res_h.binary_metadata, intervals=res_h.intervals) show("", bw_h) if __name__ == "__main__": main()