# golden-tests(任务清单) > 目标:建立 Golden Cases 与性质测试(determinism/monotonic/maxLines)回归体系,保证算法演进可控。 ## 0. 对齐与准备 - [x] 阅读并对齐口径 - [x] 阅读 `spec_kit/Text Wrap/modules/golden-tests/spec.md` - [x] 阅读 `spec_kit/Text Wrap/modules/golden-tests/plan.md` - [x] 阅读 `设计说明文档/文档换行算法.md` 的 16.1/16.2 章节 - [x] 创建客户端测试目录 - [x] 新建 `client/src/features/textWrap/golden/` ## 1. Golden fixtures - [x] 新建 `client/src/features/textWrap/golden/fixtures.ts` - [x] 定义 `GoldenCase` 类型(text/lang/context/availableWidth/maxLines 等) - [x] 补充 EN/TC 基础样例集合(首版最小可运行) - [x] 对每个 case 写入 `expected.lines/expected.wrappedText` ## 2. 测试 harness(临时串联) - [x] 在测试中实现 `wrapTextHarness()`(仅用于测试) - [x] normalizeWhitespace - [x] EN tokenizeEN / TC segmentGraphemes - [x] 使用“全断点集合”(1..N-1,首版避免候选裁剪影响) - [x] APP:searchBestLayoutApp(测量 mock=length) - [x] WIDGET:searchBestLayoutWidget(widthMode=APPROX,单位一致) ## 3. Golden cases 测试 - [x] 新建 `client/src/features/textWrap/golden/__tests__/golden.test.ts` - [x] 遍历 fixtures,断言输出与 expected 完全一致 ## 4. 性质测试(property tests) - [x] 确定性:同输入运行多次输出一致 - [x] 近似单调性:availableWidth 变小不会让任一行变得更宽(同测量 mock 下,用 width=string.length) - [x] maxLines 不变差:maxLines 增大时至少不从可解变 overflow(同测量 mock 下) ## 5. 收尾 - [x] 跑测试与类型检查 - [x] `npm test` - [x] `npx tsc --noEmit` - [x] 将本 `tasks.md` 全部勾选完成 - [x] 更新 `spec_kit/overview.md` - [x] 标记 `golden-tests` 已完成(阶段性) - [x] 写入变更文件清单