Map advanced dignity labels into vimsopaka

This commit is contained in:
732642856
2026-06-28 17:32:03 +08:00
parent 925f9f5603
commit 3ade797491
4 changed files with 43 additions and 4 deletions
+12
View File
@@ -376,6 +376,18 @@ def test_full_reading_uses_d9_context_for_vimsopaka_navamsa_dignity() -> None:
assert navamsa["dignity"] == "Enemy"
def test_full_reading_maps_advanced_dignity_labels_into_vimsopaka_scores() -> None:
result = run_engine("full-reading", *BASE_BIRTH_ARGS)
jupiter_d9 = result["modules"]["d9_navamsa_expanded"]["Jupiter"]
assert jupiter_d9["dignity"] == "NEECHA_BHANGA"
jupiter_navamsa = result["modules"]["vimsopaka"]["Jupiter"]["varga_scores"]["Navamsa"]
assert jupiter_navamsa["dignity"] == "Neecha Bhanga"
assert isinstance(jupiter_navamsa["virupas"], (int, float))
assert jupiter_navamsa["virupas"] > 2.0
def test_varga_cli_outputs_d9_and_d10() -> None:
result = run_engine("varga", *BASE_BIRTH_ARGS, "--d9", "--d10")
charts = result.get("divisional_charts", {})
+20
View File
@@ -128,6 +128,26 @@ class TestDignityLevel(unittest.TestCase):
'DEBILITATED',
)
def test_vimsopaka_calculator_supports_advanced_dignity_levels(self):
from vimsopaka_calculator import DignityLevel, VargaType, VimsopakaBalaCalculator
calculator = VimsopakaBalaCalculator(mode="shodasavarga")
results = calculator.calculate_vimsopaka_bala({
'Jupiter': {
VargaType.D9: DignityLevel.NEECHA_BHANGA,
VargaType.D1: DignityLevel.GREAT_FRIEND,
VargaType.D10: DignityLevel.GREAT_ENEMY,
}
})
jupiter = results['Jupiter']
assert jupiter['varga_scores']['Navamsa']['dignity'] == 'Neecha Bhanga'
assert jupiter['varga_scores']['Navamsa']['virupas'] == 9.0
assert jupiter['varga_scores']['Rashi']['dignity'] == 'Great Friend'
assert jupiter['varga_scores']['Rashi']['virupas'] == 12.5
assert jupiter['varga_scores']['Dasamsa']['dignity'] == 'Great Enemy'
assert jupiter['varga_scores']['Dasamsa']['virupas'] == 3.5
class TestDashaCalculation(unittest.TestCase):
"""测试 Dasha 时间线计算"""