Files
freetoken/tests/tokenizer/test_resolve_thinking_mode.py
Xiaoze Fan d7cd6ed88b [Feature] unify reasoning effort on one shared scale (#5)
* feat(server): accept every reasoning-effort dialect

* refactor(server): derive thinking gears from the checkpoint, not a registry
2026-08-15 23:40:52 -07:00

29 lines
997 B
Python

"""Unit tests for the shared thinking-mode resolver (tokenizer/tokenize.py)."""
from __future__ import annotations
from freetoken.tokenizer.tokenize import resolve_thinking_mode
def test_default_is_chat():
assert resolve_thinking_mode({}, None) == "chat"
assert resolve_thinking_mode(None, None) == "chat"
def test_tools_force_thinking():
# dsv4 only emits well-formed tool calls in thinking mode.
assert resolve_thinking_mode({}, [{"type": "function"}]) == "thinking"
def test_explicit_thinking_flags():
assert resolve_thinking_mode({"thinking": True}, None) == "thinking"
assert resolve_thinking_mode({"enable_thinking": True}, None) == "thinking"
assert resolve_thinking_mode({"thinking_mode": "thinking"}, None) == "thinking"
def test_explicit_chat_mode():
assert resolve_thinking_mode({"thinking_mode": "chat"}, None) == "chat"
def test_invalid_mode_falls_back_to_chat():
assert resolve_thinking_mode({"thinking_mode": "bogus"}, None) == "chat"