AgentnessBench / tests /agents /test_parsing.py
irregular6612's picture
refactor: restructure proteus into game/web subpackages
426093b
Raw
History Blame Contribute Delete
851 Bytes
from proteus.game.agents.parsing import extract_action
VALID = ["up", "down", "left", "right", "stay"]
def test_extracts_action_field_last_occurrence_wins():
text = "ACTION: left\n...changed my mind...\nACTION: up"
assert extract_action(text, VALID) == "up"
def test_case_insensitive_and_strips_punctuation():
assert extract_action("Action: Up.", VALID) == "up"
def test_bare_word_fallback_when_no_action_field():
assert extract_action("I will move down to escape.", VALID) == "down"
def test_returns_none_when_no_valid_action():
assert extract_action("no idea", VALID) is None
def test_action_field_with_trailing_question_mark():
# LLMs often append "?"; the field token must still be extracted, not
# fall through to a later prose word.
assert extract_action("ACTION: up?\nThen move right", VALID) == "up"