fix(yogini): use Goel Table I order and birth balance (BUG-1262, upstream 1918ffaf)

This commit is contained in:
jesse-ux
2026-10-07 16:48:25 +08:00
parent ab9e30560a
commit 3adb2460e3
5 changed files with 156 additions and 180 deletions
+16
View File
@@ -16948,4 +16948,20 @@
- 防复发:全自宫反例与 ValueError 断言
- 相关记录:BUG-1260、BUG-1205
- 复发自:无
- 修复版本:本分支 `ab9e3056`
## BUG-1262 | Yogini 顺序与出生余额不符合 Goel Classical Table I
- 状态:resolved
- 首次发现:2026-10-07
- 最近更新:2026-10-07
- 影响面:`scripts/yogini_dasha.py`;全盘报告的 Yogini 模块
- 用户现象:第一段从出生起算满周期,主星和年数与原书表不一致
- 触发条件:计算 Yogini 大运
- 根因:顺序仍是 Maya / Bhadrika / Jaya / Rati / Mangala / Pingala / Dhanya / Bhramari,没有月亮黄经时还按上升星座起运,第一段从出生起给满年。对照 V.P. Goel《Predict Effectively through Yogini Dasha》Classical 章 Table I:顺序是 Mangala 月 1、Pingala 日 2、Dhanya 木 3、Bhramari 火 4、Bhadrika 水 5、Ulka 土 6、Siddha 金 7、Sankata 罗 8;起运为从 Ashwini 起的月宿序号加 3 再除以 8 的余数;第一段是该宿未走完的余额
- 修复:按该表改顺序;必须有月亮黄经,按角度余额裁第一段,并保留未裁切的起点。全盘装配传入月亮黄经。没有月亮黄经时返回 blocked,不再用上升星座编一段
- 验证:`tests/test_yogini_seed_profile.py`(顺序、Pushya 中点余额 1.5 年、缺黄经 blocked、显式 as_of 决定当前周)
- 防复发:上述测试。`scripts/extended_dashas.py` 的另一套 Yogini 仍按月宿对 8 取余且不裁余额,全盘报告不走它
- 相关记录:BUG-1260
- 复发自:无
- 修复版本:本分支待发布