# 验收证据

## 正确性

- 每个滚动窗口与独立重算哈希逐项对照。
- 1,000 字节高值输入验证中间算术不产生负溢出结果。
- CDC 覆盖输入完整性、边界大小、确定性和局部插入复用。
- 流式 CDC 覆盖分批输入与一次性处理的边界、偏移和指纹完全一致，且
  `finish` 不会重复输出空块。
- 双指纹、固定分块清单、CDC 清单、逐字节区间验证和缺失块计划均有
  回归测试；所有“可复用”结论均在指纹筛选后进行内容验证。
- 原有固定分块、摘要、重复组与候选查询继续回归。

## 性能模型

| 操作 | 旧实现 | 0.2.0 |
| --- | --- | --- |
| n 字节、w 窗口滚动哈希 | O(n × w) | O(n) |
| CDC 扫描 | 不支持 | O(n) |
| CDC 额外边界状态 | 不支持 | O(n) 输出 |
| 流式 CDC 工作内存 | 不支持 | O(window + current chunk) |
| 缺失块计划 | 不支持 | 指纹索引 + 字节验证 |

运行 `moon run cmd/bench` 会在确定性内容前部插入一个字节，比较固定分块和 CDC
仍可复用的分块数量。CDC 使用有限滚动窗口，因此局部编辑影响不会永久传播。

当前确定性结果：

| 策略 | 原始分块 | 编辑后分块 | 可复用分块 |
| --- | ---: | ---: | ---: |
| 固定 256 字节 | 128 | 129 | 0 |
| CDC 128/256/512 | 98 | 98 | 97 |

## 可移植性

GitHub Actions 在 Native、JavaScript、Wasm 和 Wasm-GC 分别执行检查与测试。
质量门禁额外执行 `moon fmt --check`、`moon check --deny-warn --target all`、
`moon info` 后的 `.mbti` 差异检查，以及 `moon test --deny-warn --target all`。
当前 MoonBit CLI 的 `fmt`、`info` 子命令不接受 `--deny-warn`，因此使用上述
可执行的等价门禁，而不加入必然失败的参数组合。
