# golden-tests(子模块规范) ## 子模块名称 golden-tests(Golden Cases 与性质测试) ## 目标描述 建立可持续的回归体系,保证换行算法满足: - 同输入同输出(确定性) - 跨端一致(在固定测量/宽度 profile 下) - 规则变更可控(通过 `configVersion` 回溯) 本模块产出的是测试数据与测试规则,不产出业务功能。 ## 输入/输出定义 ### 输入 - Golden Case 集合(建议 JSON/TS fixture): - `text` - `lang` - `context` - `availableWidth` - `maxLines` - `fontSpec?`(APP) - `constraints?` - `overflowMode?` - `configVersion` ### 输出 - 对每个 case 的期望输出: - `expected.lines: string[]` - `expected.wrappedText: string` - 可选:`expected.meta.breaks`、`expected.meta.fallback_type/overflow_type/reason` 并定义性质测试(property tests): - **确定性**:同输入多次调用输出一致 - **近似单调性**:`availableWidth` 变小不会让任一行变得更宽(在同测量模式下) - **maxLines 不变差**:`maxLines` 增加时至少不从可解变 overflow ## 验收标准(可验证) - **覆盖度**: - 每种语言至少 20 个样例:短/长、含标点/无标点、含 emoji、含 protectedPhrases、含 shift/accum/self、极窄宽度 - **固定口径**: - 测量可控:APP 用稳定的测量 mock(或固定字体与平台);WIDGET 用固定 width profile - **CI 可运行**:在自动化环境可一键跑完(不依赖人工操作) ## 依赖与关联 - **依赖**:`core-contract`、`search-engine-*`、`scoring-tiebreak`、`overflow-fallback` - **被依赖**:`integration`(接入后验收也可引用 Golden)