# 测试向量与验证等级

## 目的

`test/fixtures/calendar-vectors.json` 保存机器可读的排盘回归向量。它们用于发现以下变化：

- 历法依赖升级后，节气交界的四柱发生变化；
- 重构输入校验或换日规则后，子时结果发生变化；
- ESM、CommonJS 或不同运行环境出现日期滚动和时区污染。

## 当前验证等级

当前向量标记为 `regression-only`，基准来自 `lunar-typescript@1.8.6` 和 `bazi-core` 明确采用的规则：

- 中国标准时间；
- 立春换年；
- 十二节换月；
- 由调用方选择 00:00 或 23:00 换日。

这能证明代码没有相对既定口径发生静默变化，但不能单独证明该口径是所有命理流派的统一答案。

## 向量结构

每个向量包含：

- `id`：稳定标识；
- `purpose`：边界意图；
- `input`：公历民用时间；
- `options`：换日规则；
- `expected.pillars`：预期四柱；
- `provenance`：基准来源和验证等级。

## 后续升级

当某个向量经过独立历法实现或可引用万年历资料复核后，可以把该向量的验证等级提升为 `cross-validated`，并记录：

- 对照实现或资料名称及版本；
- 采用的时区、节气和换日口径；
- 存在分歧时的双方结果和选择理由。

禁止只因为依赖升级产生了新结果，就直接覆盖旧向量。必须先确认是缺陷修复、口径变化还是回归，再决定新增模型版本或修正向量。
