from pataniscai.benchmark import percentile, summarize


def test_percentile_95_uses_observed_value() -> None:
    assert percentile(list(range(1, 101)), 0.95) == 95


def test_summary_excludes_manual_fields() -> None:
    result = summarize(
        [
            {"field": "niss", "verdict": "correct", "duration_ms": 10},
            {"field": "niss", "verdict": "empty", "duration_ms": 30},
            {"field": "morada", "verdict": "wrong", "duration_ms": None},
        ]
    )
    assert result["totals"] == {"correct": 1, "wrong": 0, "empty": 1, "no_data": 0}
    assert result["timing"] == {"samples": 2, "mean_ms": 20, "p95_ms": 30}

