Files
wehub-resource-sync e4dcfc49aa
Tests / Import Check (Python 3.13) (push) Has been cancelled
Tests / Import Check (Python 3.14) (push) Has been cancelled
Tests / Python Tests (Python 3.11) (push) Has been cancelled
Tests / Python Tests (Python 3.12) (push) Has been cancelled
Tests / Python Tests (Python 3.14) (push) Has been cancelled
Tests / Test Summary (push) Has been cancelled
Tests / Lint and Format (push) Has been cancelled
Tests / Web Node Tests (push) Has been cancelled
Tests / Import Check (Python 3.11) (push) Has been cancelled
Tests / Import Check (Python 3.12) (push) Has been cancelled
Tests / Python Tests (Python 3.13) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:00:43 +08:00

65 lines
2.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from deeptutor.core.agentic.labels import classify_label, find_inline_labels
_ALLOWED = ("FINISH", "TOOL", "THINK", "PAUSE")
def test_classify_label_accepts_common_wrapper_variants() -> None:
assert classify_label("`FINISH`\nDone", allowed_labels=_ALLOWED) == (
"FINISH",
"Done",
)
assert classify_label("```FINISH```\nDone", allowed_labels=_ALLOWED) == (
"FINISH",
"Done",
)
assert classify_label("FINISHDone", allowed_labels=_ALLOWED) == (
"FINISH",
"Done",
)
def test_classify_label_accepts_body_adjacent_to_wrapped_label() -> None:
assert classify_label("``FINISH``你好!", allowed_labels=_ALLOWED) == (
"FINISH",
"你好!",
)
assert classify_label("``THINK``I need one private step.", allowed_labels=_ALLOWED) == (
"THINK",
"I need one private step.",
)
def test_classify_label_waits_for_unambiguous_bare_label_until_final() -> None:
assert classify_label("FINISH", allowed_labels=_ALLOWED) is None
assert classify_label("FINISH", allowed_labels=_ALLOWED, final=True) == (
"FINISH",
"",
)
assert classify_label("FINISHED", allowed_labels=_ALLOWED, final=True) is None
def test_classify_label_does_not_accept_split_wrapped_label_too_early() -> None:
assert classify_label("``FINISH`", allowed_labels=_ALLOWED) is None
assert classify_label("``FINISH```", allowed_labels=_ALLOWED) is None
assert classify_label("``FINISH``\nDone", allowed_labels=_ALLOWED) == (
"FINISH",
"Done",
)
def test_find_inline_labels_detects_tolerated_label_variants() -> None:
assert find_inline_labels(
"draft\n`THINK`\nmore\n```TOOL```\nFINISHagain",
allowed_labels=_ALLOWED,
) == ["THINK", "TOOL", "FINISH"]
def test_find_inline_labels_ignores_prose_mentions() -> None:
assert (
find_inline_labels(
"I should use ``TOOL`` next, then finish with ``FINISH``.",
allowed_labels=_ALLOWED,
)
== []
)