49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
"""Smoke-test read_idf_file across the sample 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, geo_count_to_ips, mic_count_to_psi
|
|
|
|
|
|
def main():
|
|
target = REPO / "tests/fixtures/THORDATA_example/THORDATA_example/UPMC Presby/UM11719/UM11719_20231219162723.IDFW"
|
|
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" record_time: {ev.record_time_sec}")
|
|
print(f" calibration: {result.binary_metadata.calibration_date}")
|
|
print(f" Tran samples: {len(result.samples['Tran'])}, peak_ips={ev.peaks.transverse_ips:.4f}")
|
|
print(f" Vert samples: {len(result.samples['Vert'])}, peak_ips={ev.peaks.vertical_ips:.4f}")
|
|
print(f" Long samples: {len(result.samples['Long'])}, peak_ips={ev.peaks.longitudinal_ips:.4f}")
|
|
print(f" MicL samples: {len(result.samples['MicL'])}")
|
|
print()
|
|
|
|
# Corpus sweep
|
|
root = REPO / "tests/fixtures/THORDATA_example"
|
|
files = [f for f in root.rglob("*.IDFW") if not str(f).endswith(".CDB")]
|
|
ok = fail = nyi = 0
|
|
for f in files:
|
|
try:
|
|
r = read_idf_file(f)
|
|
ok += 1
|
|
except NotImplementedError:
|
|
nyi += 1
|
|
except Exception as exc:
|
|
fail += 1
|
|
if fail <= 5:
|
|
print(f" FAIL: {f.name}: {type(exc).__name__}: {exc}")
|
|
print()
|
|
print(f"Corpus: {len(files)} IDFW files | ok={ok} fail={fail} not-implemented={nyi}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|