更新换行算法和APP-PUSH

This commit is contained in:
吕新雨
2026-02-10 11:39:33 +08:00
parent f03d36b5e9
commit ee2d9f44ea
105 changed files with 9967 additions and 233 deletions

View File

@@ -0,0 +1,50 @@
# 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] 写入变更文件清单