File size: 1,967 Bytes
a5f0057 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #!/usr/bin/env python3
"""Render concise Markdown tables after verifying all released artifacts."""
from __future__ import annotations
from verify_results import verify_all
def main() -> int:
report = verify_all()
challenge = report["challenge"]
external = report["external"]
robustness = report["robustness"]
post = report["postprocessing"]
intervals = report["interval_consistency"]["digitized_vs_native_auto"]
print("## Verified primary and external results\n")
print("| Result | Value |")
print("|---|---:|")
print(f"| Official private challenge | {challenge['score_db']:.3f} dB; rank {challenge['rank']}/{challenge['teams']} |")
print(f"| LUDB coverage | {external['successes']}/{external['records']} |")
print(f"| LUDB mean record SNR | {external['mean_snr_db']:.3f} dB |")
print(f"| LUDB pooled SNR | {external['pooled_snr_db']:.3f} dB |")
print("\n## Paired robustness\n")
print("| Profile | Mean SNR (dB) | Change vs clean (dB) |")
print("|---|---:|---:|")
for profile in ("clean", "mild", "moderate", "severe"):
print(f"| {profile} | {robustness['mean_snr_db'][profile]:.2f} | {robustness['paired_delta_db'][profile]:+.2f} |")
print("\n## Post-processing ablation\n")
print("| Mode | Mean SNR (dB) | Change vs none (dB) |")
print("|---|---:|---:|")
for mode in ("none", "smooth", "partial", "project", "blend", "smooth+project+blend"):
print(f"| {mode} | {post['mean_snr_db'][mode]:.3f} | {post['paired_delta_db'][mode]:+.3f} |")
print("\n## Digitized-vs-native automated interval consistency\n")
print("| Quantity | n | MAE |")
print("|---|---:|---:|")
for metric in ("HR", "RR", "QRS", "PR", "QT", "QTc"):
unit = "bpm" if metric == "HR" else "ms"
item = intervals[metric]
print(f"| {metric} | {item['n']} | {item['mae']:.3f} {unit} |")
return 0
if __name__ == "__main__":
raise SystemExit(main())
|