diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_kernel_models.py | 13 | ||||
| -rw-r--r-- | tests/test_models.py | 24 |
2 files changed, 23 insertions, 14 deletions
diff --git a/tests/test_kernel_models.py b/tests/test_kernel_models.py index 0dc653d..8ccfd16 100644 --- a/tests/test_kernel_models.py +++ b/tests/test_kernel_models.py @@ -199,3 +199,16 @@ def test_accept_verdict_normalizes_explicit_none_sentinel() -> None: ) assert verdict.blocking_issues == "" assert verdict.patch_suggestion == "" + + +def test_reject_verdict_accepts_llm_summary_without_keyword_expansion() -> None: + verdict = JudgeVerdict( + verdict="reject", + step_by_step_check=( + "n1–n8 are correct, but the announced slot replacement never " + "appears in the candidate problem." + ), + blocking_issues="the candidate problem is identical to the original", + patch_suggestion="apply the declared replacement to the problem", + ) + assert verdict.verdict == "reject" diff --git a/tests/test_models.py b/tests/test_models.py index b329ecd..2c08bce 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -96,23 +96,20 @@ def test_path_dag_rejects_skipped_dependency() -> None: ) -def test_judge_verdict_requires_every_dag_node(plan_dict: dict) -> None: - dag = ProofPlanDAG.from_plan(KernelPlan.model_validate(plan_dict)) +def test_judge_verdict_does_not_require_keyword_coverage() -> None: verdict = JudgeVerdict( - verdict="accept", - step_by_step_check="n1 is valid; n2 is valid", + verdict="reject", + step_by_step_check=( + "The early derivation is correct, but the announced replacement " + "never appears in the candidate problem." + ), + blocking_issues="the candidate is unchanged from the original", + patch_suggestion="apply the declared replacement", ) - assert verdict.validate_coverage(dag) is verdict + assert verdict.verdict == "reject" - with pytest.raises(ValueError, match="does not cover DAG nodes.*n2"): - JudgeVerdict( - verdict="accept", - step_by_step_check="n1 is valid", - ).validate_coverage(dag) - -def test_judge_verdict_normalizes_structured_text_fields(plan_dict: dict) -> None: - dag = ProofPlanDAG.from_plan(KernelPlan.model_validate(plan_dict)) +def test_judge_verdict_normalizes_structured_text_fields() -> None: verdict = JudgeVerdict.model_validate( { "verdict": "accept", @@ -128,7 +125,6 @@ def test_judge_verdict_normalizes_structured_text_fields(plan_dict: dict) -> Non assert '"n1"' in verdict.step_by_step_check assert verdict.blocking_issues == "" assert verdict.patch_suggestion == "" - assert verdict.validate_coverage(dag) is verdict def test_dag_labels_must_match_prompt_a_plan(plan_dict: dict) -> None: |
