fix: Solver-Fehler gilt als unzuverlässig; Aufräumrunde ohne LLM
- Status error nach allen Reparaturen -> reliable=False („Solver-Fehler: …“, auch bei --resolve); vorher Exit-Code 0 ohne Warnkasten. Benchmark zählt einen Absturz nicht als ehrliches Scheitern. - Report: „längster Weg“ bei maximize; Harness druckt „Gefundener Weg“. - check_requested_method: Verneinung kurz davor im selben Satz („ohne/nicht/statt/ anders als Dijkstra“) ist keine Forderung. - Reparatur-Prompt enthält die Fehlertexte aller früheren Versuche. - ruff (F, E9) als Test tests/test_lint.py, Konfiguration in pyproject.toml. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
29d058d8f1
commit
f101b63947
1 changed files with 149 additions and 13 deletions
|
|
@ -1,3 +1,5 @@
|
|||
import pytest
|
||||
|
||||
from checks.model_checks import check_spec, has_errors
|
||||
from core.model_schema import OptimizationModelSpecification
|
||||
|
||||
|
|
@ -495,3 +497,18 @@ def test_heading_markers_win_over_numbered_lists():
|
|||
"### Teil 1: Formulierung\nKlassifizieren Sie das Problem.\n\n### Teil 2: Lösung\nLösen Sie das Modell.")
|
||||
assert question_ids_in(text) == {"1", "2"}
|
||||
assert question_ids_in("1. Berechnen Sie x.\n2. Deuten Sie y.\n3. Vergleichen Sie.") == {"1", "2", "3"}
|
||||
|
||||
|
||||
@pytest.mark.parametrize("text, verlangt", [
|
||||
("Lösen Sie das Problem ohne den Dijkstra-Algorithmus, als Flussmodell.", False),
|
||||
("Anders als beim Dijkstra-Verfahren sind hier negative Kosten möglich – nicht mit Dijkstra rechnen.", False),
|
||||
("Verwenden Sie statt Dijkstra ein lineares Programm.", False),
|
||||
("b) Lösen Sie es mit dem Dijkstra-Algorithmus!", True),
|
||||
("Lösen Sie mit Dijkstra. Ohne Rechenweg gibt es keine Punkte.", True), # Verneinung im nächsten Satz
|
||||
("Nicht jede Kante ist befahrbar. Bestimmen Sie den Weg mit Dijkstra.", True),
|
||||
])
|
||||
def test_negated_method_mention_is_not_a_request(text, verlangt):
|
||||
spec = make_spec(problem_class="Mixed-Integer Linear Programming (MILP)", target_stack="HiGHS",
|
||||
variables=[{"name": "x_{ij}", "var_type": "binary", "domain": "{0,1}", "description": "-"}])
|
||||
gemeldet = "REQUESTED_METHOD_IGNORED" in {i.code for i in check_spec(spec, text)}
|
||||
assert gemeldet is verlangt
|
||||
|
|
|
|||
Loading…
Reference in a new issue