初始化提交

This commit is contained in:
chenxin committed 2026-08-21 16:00:13 +08:00
commit 887c1f449e
963 files changed
+166869

No files matched your search

@@ -0,0 +1,66 @@
"""小周天每轮反思抽取纯函数测试。"""
from app.modules.extraction.extract import MemoryCandidateDraft
from app.modules.reflection.extract import parse_reflection
def test_parse_standard() -> None:
raw = (
'{"memories":[{"type":"preference","title":"喜欢简洁","content":"用户偏好简洁",'
'"importance":0.8,"sensitivity":"low","confidence":0.7,"reason":"多次提及"}],'
'"reflection":"本轮应更主动确认用户意图。"}'
)
memories, reflection = parse_reflection(raw)
assert len(memories) == 1
assert memories[0].title == "喜欢简洁"
assert isinstance(memories[0], MemoryCandidateDraft)
assert reflection == "本轮应更主动确认用户意图。"
def test_parse_markdown_block() -> None:
raw = '```json\n{"memories":[],"reflection":"反思文本"}\n```'
memories, reflection = parse_reflection(raw)
assert memories == []
assert reflection == "反思文本"
def test_parse_invalid_returns_empty() -> None:
assert parse_reflection("不是JSON") == ([], "")
assert parse_reflection("[]") == ([], "")
def test_missing_reflection_returns_empty_string() -> None:
memories, reflection = parse_reflection('{"memories":[]}')
assert memories == []
assert reflection == ""
def test_missing_memories_returns_empty_list() -> None:
memories, reflection = parse_reflection('{"reflection":"只有反思"}')
assert memories == []
assert reflection == "只有反思"
def test_memory_safe_defaults() -> None:
raw = '{"memories":[{"title":"t","content":"c"}],"reflection":"r"}'
m = parse_reflection(raw)[0][0]
assert m.sensitivity == "low"
assert m.confidence == 0.5
assert m.importance == 0.5
def test_skip_memory_missing_title_or_content() -> None:
raw = (
'{"memories":[{"title":"t"},{"content":"c"},{"title":"t","content":"c"}],"reflection":"r"}'
)
assert len(parse_reflection(raw)[0]) == 1
def test_clamp_values() -> None:
raw = '{"memories":[{"title":"t","content":"c","importance":1.5}],"reflection":"r"}'
assert parse_reflection(raw)[0][0].importance == 1.0
def test_reflection_strips_whitespace() -> None:
raw = '{"memories":[],"reflection":" 带空格的反思 "}'
assert parse_reflection(raw)[1] == "带空格的反思"