Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions src/eigenscript/runtime/explain.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,9 +204,12 @@ def explain_improving(
)
elif previous_radius is not None and current_radius is not None:
delta = current_radius - previous_radius
direction = (
"decreasing (improving)" if delta < 0 else "increasing (not improving)"
)
if delta < 0:
direction = "decreasing (improving)"
elif delta > 0:
direction = "increasing (not improving)"
else:
direction = "unchanged (not improving)"
print(
f" └─ radius: {previous_radius:.4f} → {current_radius:.4f}",
file=sys.stderr,
Expand Down
15 changes: 15 additions & 0 deletions tests/test_explain.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,21 @@ def test_explain_improving(self):
assert "radius: 10.0000 → 8.0000" in output
assert "decreasing (improving)" in output

def test_explain_improving_flat(self):
"""Should explain improving predicate when radius is unchanged."""
explainer = PredicateExplainer(enabled=True, use_color=False)
stderr = StringIO()
with patch("sys.stderr", stderr):
explainer.explain_improving(
result=False,
previous_radius=5.0,
current_radius=5.0,
trajectory_length=3,
)
output = stderr.getvalue()
assert "`improving` → FALSE" in output
assert "unchanged (not improving)" in output

def test_explain_improving_insufficient_data(self):
"""Should explain improving with insufficient trajectory."""
explainer = PredicateExplainer(enabled=True, use_color=False)
Expand Down
Loading