Files
remove-ai-watermarks/tests/test_engine_selection_analysis.py
T

50 lines
1.5 KiB
Python

from __future__ import annotations
import importlib.util
from pathlib import Path
from typing import Any
import pytest
SCRIPT = Path(__file__).resolve().parents[1] / "scripts" / "analyze_engine_selection_study.py"
SPEC = importlib.util.spec_from_file_location("analyze_engine_selection_study", SCRIPT)
assert SPEC is not None
assert SPEC.loader is not None
MODULE = importlib.util.module_from_spec(SPEC)
SPEC.loader.exec_module(MODULE)
def _row(*, ssim: float, lpips: float) -> dict[str, Any]:
common = {
"psnr_db": 30.0,
"mae": 2.0,
"edge_f1": 0.8,
"laplacian_ratio": 0.9,
}
return {
"pair_id": "00",
"provider": "openai",
"content_stratum": "test",
"fidelity": {**common, "ssim": ssim, "lpips_512": lpips},
}
def test_exact_sign_test_two_sided() -> None:
assert MODULE._sign_test_two_sided(19, 0) == pytest.approx(2 / 2**19)
assert MODULE._sign_test_two_sided(12, 7) == pytest.approx(0.359283447265625)
assert MODULE._sign_test_two_sided(0, 0) == 1.0
def test_analysis_respects_each_metrics_preferred_direction() -> None:
report = {
"qwen-zimage": {"rows": [_row(ssim=0.8, lpips=0.1)]},
"chroma-zimage": {"rows": [_row(ssim=0.9, lpips=0.2)]},
}
metrics = MODULE.analyze(report)["providers"]["openai"]["metrics"]
assert metrics["ssim"]["chroma_wins"] == 1
assert metrics["ssim"]["qwen_wins"] == 0
assert metrics["lpips_512"]["chroma_wins"] == 0
assert metrics["lpips_512"]["qwen_wins"] == 1