Files
mindfulness/spec_kit/Text Wrap/modules/golden-tests/tasks.md
2026-02-10 11:39:33 +08:00

51 lines
1.9 KiB
Markdown
Raw 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.
# 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] APPsearchBestLayoutApp测量 mock=length
- [x] WIDGETsearchBestLayoutWidgetwidthMode=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] 写入变更文件清单