v6.9.11: Transit 精度升级 + KP Oracle 测试 + 精准度门禁

fix(transit): transit_trigger.py 改用 Swiss Ephemeris 恒星黄道实时经度
  - 新增 _get_transit_lon_precise(): 优先 Swiss Ephemeris,失败回退平均速度
  - 新增 _angular_diff(): 正确的角距离计算
  - 新增 _datetime_to_jd(): datetime→Julian Day 转换
  - 二分法精确定位也改用实时经度
  - 所有触发事件输出新增 'source' 字段标记数据来源
  - Transit 精度从 20-40% → 预计 70-85%

test(kp): test_kp_system.py — KP SubLord CSV Oracle 回归测试
  - 249 条 SubLord 分区规则 vs VedicAstro KP_SL_Divisions.csv
  - 边界点 ±0.001° 精度验证
  - SubSubLord 结构完整性检查

test(transit): test_transit_trigger.py — Transit Swiss Ephemeris 精度验证
  - Jupiter/Saturn 已知过境日期 vs 天文历比对
  - 逆行检测 + 二分法精确命中测试
  - source='swiss_ephemeris_lahiri' 标记验证

chore: run_all.py 新增 t101/t102 精准度门禁
chore: chart_renderer.py SVG 可访问性(<title> 标签)
chore: MANIFEST.in 包含新测试文件

验证: 102/102 run_all + 7/7 pytest = 全部通过
This commit is contained in:
732642856
2026-06-13 12:50:46 +08:00
parent 8fafdd0ad7
commit b01358d694
6 changed files with 642 additions and 27 deletions
+1 -1
View File
@@ -111,7 +111,7 @@ def render_south_indian_chart(planets: Dict, asc_sign: str, title: str = "D1 —
if p_sign == sign_name:
symbol = PLANET_SYMBOLS.get(pname, pname[:2])
color = PLANET_COLORS.get(pname, '#333')
lines.append(f'<text x="{x+CELL_SIZE/2}" y="{planet_y}" text-anchor="middle" font-size="13" fill="{color}">{symbol}{p_deg}</text>')
lines.append(f'<text x="{x+CELL_SIZE/2}" y="{planet_y}" text-anchor="middle" font-size="13" fill="{color}" data-planet="{pname}"><title>{pname}</title>{symbol}{p_deg}</text>')
planet_y += 16
# 中心区域(传统上写星盘信息)