Files
Jyotisha/tests/test_upstream_sync9_darakaraka_reader_identity.py
T
jesse-uxandGrok (agent loop) 7bede9c99a fix(darakaraka): sort with the existing Jaimini tables (BUG-1478, upstream 45b3b66b)
Calls calc_chara_karaka_7 and calc_chara_karaka_8. jaimini.py is not edited.

Co-Authored-By: Grok (agent loop)
2026-10-28 09:45:08 +08:00

43 lines
1.5 KiB
Python

"""The interpretation reader must use the canonical Chara Karaka ranking.
Upstream calls calc_chara_karaka(..., variant=). This tree exposes
calc_chara_karaka_7 and calc_chara_karaka_8. jaimini.py stays frozen.
"""
from scripts.darakaraka_reader import DarakarakaReader
from scripts.jaimini import calc_chara_karaka_8
def test_eight_karaka_reader_excludes_ketu_and_outer_planets() -> None:
longitudes = {
"Sun": 1.0,
"Moon": 4.0,
"Mars": 8.0,
"Mercury": 12.0,
"Jupiter": 16.0,
"Venus": 20.0,
"Saturn": 24.0,
"Rahu": 28.0,
"Ketu": 29.0,
"Pluto": 29.5,
}
chart = {"planets": {name: {"degree_raw": longitude} for name, longitude in longitudes.items()}}
expected = calc_chara_karaka_8(longitudes)["karaka_table_8"]["Darakaraka"]["planet"]
planet, _ = DarakarakaReader()._calculate_dk(chart, use_8_karaka=True)
assert planet == expected
assert planet not in {"Ketu", "Pluto"}
def test_reader_uses_raw_longitude_when_available() -> None:
chart = {"planets": {
"Sun": {"degree_raw": 1.0, "degree_in_sign": 29.0},
"Moon": {"degree_raw": 2.0}, "Mars": {"degree_raw": 3.0},
"Mercury": {"degree_raw": 4.0}, "Jupiter": {"degree_raw": 5.0},
"Venus": {"degree_raw": 6.0}, "Saturn": {"degree_raw": 7.0},
"Rahu": {"degree_raw": 8.0},
}}
planet, _ = DarakarakaReader()._calculate_dk(chart, use_8_karaka=True)
assert planet == "Sun"