48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
"""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()
|