Benchmark · Reproducibility · Boundary Tests
排盘结果不是“看起来对”就算完成,而要能被重复计算和检查。
这个页面公开说明命序怎样测试时间、历法、八字、紫微和大六壬的确定性计算。它验证的是软件实现与规则一致性,不是在证明传统术数具有现代科学预测效力。
我们重点测试什么?
最容易出错的不是普通日期,而是边界:夏令时切换、半小时和 45 分钟时区、真太阳时跨时辰或跨日期、节气附近、不同引擎对同一结构的重叠字段,以及大六壬三传等复杂规则链。
时间与真太阳时
- IANA 时区与日期对应的真实 UTC offset。
- America/New_York 等夏令时切换以及不存在的本地墙上时间。
- Asia/Kolkata 的 +05:30、Asia/Kathmandu 的 +05:45、Australia/Eucla 的 +08:45 等非整点时区。
- 标准时、地方平太阳时、视太阳时分别记录,并显式标记修正是否跨时辰或跨日期。
八字与运限
四柱、节气桥接、大运流年流月与关系事实由固定代码生成;项目还使用重叠历法实现做交叉核对。冲、合、刑、害、破、伏吟、三合/三会等在事实层保存,避免把“计算事实”和“解释结论”混成一件事。
紫微斗数
测试覆盖十二宫、星曜、亮度、四化、大限和动态运限的归一化结构。前端渲染读取统一数据模型,而不是把某个 UI 组件的显示结果当成唯一事实来源。
大六壬
完整课盘保留月将、天地盘、天将、四课、三传、旬空、遁干、六亲、课体与来源受控神煞。重叠字段会在两个 TypeScript 实现之间比较,并使用固定版本的 Python kinliuren 课例作为额外 CI oracle;出现差异时进入 warning / crossCheck,而不是静默抹平。
代表性固定结果(2026-09-07)
- 八字:2001-01-29 13:32 +08:00 → 庚辰、己丑、壬辰、丁未。
- 晚子时:1988-02-15 23:30 +08:00 → sect 1 为辛丑日,sect 2 为庚子日。
- 真太阳时:2026-09-02 13:03、东经 118° → 12:55:58,未时跨回午时。
- 大六壬:2026-04-10 08:26 +08:00 → 返吟重审法,三传寅→申→寅;23 个交叉字段 matched。
这里公布的是可回归的软件输出,不代表对传统术数预测效力的科学验证。具体断言均由仓库中的自动测试锁定。
如何复现
源码、测试和依赖版本均在公开仓库中。核心命令:
npm install
npm run test
npm run typecheck
npm run test:webmcp