Files
Jyotisha/tests/test_arudha_single_source.py
T

42 lines
1.9 KiB
Python

"""BUG-1190 (TASK-upstream-sync4-20261002 T6): AL / UL have one source.
Every place a full reading shows Arudha Lagna or Upapada Lagna (yogas_doshas,
special_lagnas, the transit multi-reference table) must equal
``jaimini.calc_arudha_padas``. Fictitious charts only. 00:30 puts the lagna
lord 4th from the lagna and 02:30 puts the 12th lord 4th from the 12th, the two
cases where the removed "count from the landing" 1/7 exception disagreed.
"""
from __future__ import annotations
import pytest
import scripts.special_lagnas as special_lagnas
import scripts.yogas_doshas as yogas_doshas
from scripts.jyotish_engine import cmd_full_reading
from scripts.professional_report_reference import _export_args
BASE = dict(year=1990, month=6, day=15, second=0, lat=39.9042, lon=116.4074, tz=8,
ayanamsa="lahiri", node_mode="mean")
@pytest.mark.parametrize("hour", [10, 0, 2])
def test_full_reading_al_ul_equal_jaimini(hour: int) -> None:
modules = cmd_full_reading(_export_args({**BASE, "hour": hour, "minute": 30}))["modules"]
padas = modules["jaimini"]["arudha_padas"]
al, ul = padas["arudha_lagna"]["sign"], padas["upapada"]["sign"]
assert modules["yogas_doshas"]["arudha_lagna"]["arudha_lagna"] == al
assert modules["yogas_doshas"]["upapada_lagna"]["upapada"] == ul
assert modules["special_lagnas"]["Arudha_Lagna"]["sign"] == al
assert modules["special_lagnas"]["Upapada_Lagna"]["sign"] == ul
assert modules["special_lagnas"]["Arudha_Lagna"]["source"] == "jaimini.calc_arudha_padas"
assert modules["transit_multi_reference"]["references"]["Arudha_Lagna"]["sign"] == al
def test_parallel_arudha_calculators_are_gone() -> None:
assert not hasattr(yogas_doshas, "calc_arudha_lagna")
assert not hasattr(yogas_doshas, "calc_upapada_lagna")
assert not hasattr(special_lagnas.SpecialLagnasCalculator, "calculate_arudha_lagna")
assert not hasattr(special_lagnas.SpecialLagnasCalculator, "calculate_upapada_lagna")