Calls calc_chara_karaka_7 and calc_chara_karaka_8. jaimini.py is not edited. Co-Authored-By: Grok (agent loop)
43 lines
1.5 KiB
Python
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"
|