33 lines
883 B
Python
33 lines
883 B
Python
"""WriterState 测试(P5-T5)。"""
|
|
from genesis.writer.writer_state import WriterState
|
|
from genesis.writer.models import ChapterContent
|
|
from genesis.eval.scorer import EvalReport
|
|
|
|
|
|
def _content(cid, version=1):
|
|
return ChapterContent(chapter_id=cid, version=version, title="x", blocks=[])
|
|
|
|
|
|
def _report(failed):
|
|
return EvalReport(
|
|
dimensions=[], total_score=0.0, passed=False, failed_chapters=failed,
|
|
)
|
|
|
|
|
|
def test_initial_state_empty():
|
|
st = WriterState(["a", "b"])
|
|
assert st.needs_regeneration() == ["a", "b"]
|
|
|
|
|
|
def test_record_success_clears_need():
|
|
st = WriterState(["a"])
|
|
st.record_success(_content("a"))
|
|
assert st.needs_regeneration() == []
|
|
|
|
|
|
def test_failed_eval_marks_regeneration():
|
|
st = WriterState(["a"])
|
|
st.record_success(_content("a"))
|
|
st.record_eval("a", _report(["a"]))
|
|
assert st.needs_regeneration() == ["a"]
|