Enhancer / tools /test_evaluation_workflow.py
supli6669
feat: add model quality workflow gate
2d06408
Raw
History Blame Contribute Delete
1.72 kB
"""Fast regression tests for benchmark manifest validation."""
from __future__ import annotations
import csv
import sys
import tempfile
from pathlib import Path
PROJECT_DIR = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(PROJECT_DIR / "tools"))
from evaluate_restoration import load_manifest, validate_files
def main() -> None:
with tempfile.TemporaryDirectory() as temp_dir:
root = Path(temp_dir)
input_dir = root / "inputs"
reference_dir = root / "references"
input_dir.mkdir()
reference_dir.mkdir()
(input_dir / "sample.jpg").write_bytes(b"test")
(reference_dir / "sample.jpg").write_bytes(b"test")
manifest = root / "manifest.csv"
with manifest.open("w", encoding="utf-8", newline="") as handle:
writer = csv.DictWriter(handle, fieldnames=["id", "input_path", "reference_path", "category", "notes"])
writer.writeheader()
writer.writerow({
"id": "sample_001",
"input_path": "inputs/sample.jpg",
"reference_path": "references/sample.jpg",
"category": "jpeg_compression",
"notes": "fixture",
})
samples = load_manifest(manifest)
assert len(samples) == 1
assert validate_files(samples) == (1, 1)
(input_dir / "sample.jpg").unlink()
try:
validate_files(samples)
except ValueError as error:
assert "Missing input" in str(error)
else:
raise AssertionError("Missing benchmark input must fail validation.")
print("SUCCESS: benchmark manifest workflow validated.")
if __name__ == "__main__":
main()