Initial Open-SWE-Traces cleanup pipeline
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""Tests for prompt-only trajectory compaction."""
|
||||
|
||||
from swe_data_processing.evidence import compact_text, compact_trajectory
|
||||
|
||||
|
||||
def test_compact_text_preserves_short_values() -> None:
|
||||
"""Short evidence must remain byte-for-byte identical."""
|
||||
|
||||
assert compact_text("short evidence", 100) == "short evidence"
|
||||
|
||||
|
||||
def test_compact_text_hashes_long_values() -> None:
|
||||
"""Long evidence must expose its size and digest for auditability."""
|
||||
|
||||
result = compact_text("a" * 1_000, 200)
|
||||
assert len(result) == 200
|
||||
assert "COMPACTED original_chars=1000 sha256=" in result
|
||||
|
||||
|
||||
def test_compact_trajectory_prioritizes_test_observations() -> None:
|
||||
"""Important test output receives a larger preview than ordinary output."""
|
||||
|
||||
long_content = "x" * 3_000
|
||||
trajectory = [
|
||||
{"turn_id": 1, "role": "user", "content": "issue"},
|
||||
{"turn_id": 2, "role": "assistant", "content": "", "tool_calls": []},
|
||||
{"turn_id": 3, "role": "tool", "content": long_content},
|
||||
{"turn_id": 4, "role": "assistant", "content": "done"},
|
||||
]
|
||||
signals = {
|
||||
"stateful_turns": [],
|
||||
"test_events": [{"command_turn": 2, "output_turn": 3}],
|
||||
"malformed_tool_turns": [],
|
||||
"unknown_tool_turns": [],
|
||||
}
|
||||
compacted, metadata = compact_trajectory(trajectory, signals)
|
||||
assert compacted[2]["content"] == long_content
|
||||
assert 3 in metadata["important_turn_ids"]
|
||||
Reference in New Issue
Block a user