fix(vimsopaka): score sign-owner relationships on a 20-point scale (BUG-1261, upstream f32472b5)
This commit is contained in:
@@ -757,9 +757,14 @@ def test_full_reading_maps_advanced_dignity_labels_into_vimsopaka_scores() -> No
|
||||
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
|
||||
# 原值: dignity == "Neecha Bhanga",virupas > 2.0
|
||||
# 新值: 星主关系之一,virupas 属于 {20, 18, 15, 10, 7, 5}
|
||||
# 原因: BUG-1261,Vimsopaka 不再把落陷取消当作尊贵分;D9 标签本身仍是 NEECHA_BHANGA
|
||||
assert jupiter_navamsa["dignity"] in {
|
||||
"Exalted", "Moolatrikona", "Own Sign", "Great Friend", "Friend", "Neutral", "Enemy", "Great Enemy",
|
||||
}
|
||||
assert jupiter_navamsa["virupas"] in {20.0, 18.0, 15.0, 10.0, 7.0, 5.0}
|
||||
assert "不是功能吉凶" in result["modules"]["vimsopaka"]["Jupiter"]["interpretation"]
|
||||
|
||||
|
||||
def test_varga_cli_outputs_d9_and_d10() -> None:
|
||||
|
||||
+31
-5
@@ -134,19 +134,45 @@ class TestDignityLevel(unittest.TestCase):
|
||||
calculator = VimsopakaBalaCalculator(mode="shodasavarga")
|
||||
results = calculator.calculate_vimsopaka_bala({
|
||||
'Jupiter': {
|
||||
VargaType.D9: DignityLevel.NEECHA_BHANGA,
|
||||
# 原值: D9 = NEECHA_BHANGA,virupas 9.0
|
||||
# 新值: D9 = FRIEND,virupas 15.0
|
||||
# 原因: BUG-1261,Varga Viswa 只收星主关系,不收落陷取消
|
||||
VargaType.D9: DignityLevel.FRIEND,
|
||||
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
|
||||
# 原值: Neecha Bhanga / 9.0;Great Friend 12.5;Great Enemy 3.5
|
||||
# 新值: Friend / 15.0;Great Friend 18.0;Great Enemy 5.0
|
||||
# 原因: BUG-1261,尊贵分改为入旺自宫 20、极友 18、友 15、中 10、敌 7、极敌 5
|
||||
assert jupiter['varga_scores']['Navamsa']['dignity'] == 'Friend'
|
||||
assert jupiter['varga_scores']['Navamsa']['virupas'] == 15.0
|
||||
assert jupiter['varga_scores']['Rashi']['dignity'] == 'Great Friend'
|
||||
assert jupiter['varga_scores']['Rashi']['virupas'] == 12.5
|
||||
assert jupiter['varga_scores']['Rashi']['virupas'] == 18.0
|
||||
assert jupiter['varga_scores']['Dasamsa']['dignity'] == 'Great Enemy'
|
||||
assert jupiter['varga_scores']['Dasamsa']['virupas'] == 3.5
|
||||
assert jupiter['varga_scores']['Dasamsa']['virupas'] == 5.0
|
||||
with self.assertRaises(ValueError):
|
||||
calculator.calculate_vimsopaka_bala({'Jupiter': {VargaType.D9: DignityLevel.NEECHA_BHANGA}})
|
||||
with self.assertRaises(ValueError):
|
||||
calculator.calculate_vimsopaka_bala({'Jupiter': {VargaType.D1: DignityLevel.DEBILITATED}})
|
||||
|
||||
def test_all_own_sign_shodasavarga_scores_twenty(self):
|
||||
from vimsopaka_calculator import DignityLevel, VimsopakaBalaCalculator
|
||||
|
||||
calculator = VimsopakaBalaCalculator(mode="shodasavarga")
|
||||
own = {varga: DignityLevel.OWN_SIGN for varga in calculator.SHODASAVARGA_WEIGHTS}
|
||||
result = calculator.calculate_vimsopaka_bala({'Sun': own})['Sun']
|
||||
self.assertEqual(sum(calculator.SHODASAVARGA_WEIGHTS.values()), 20)
|
||||
self.assertEqual(sum(VimsopakaBalaCalculator.DASAVARGA_WEIGHTS.values()), 20)
|
||||
self.assertEqual(result['total_score'], 20)
|
||||
self.assertEqual(result['category'], 'High')
|
||||
self.assertTrue(result['complete'])
|
||||
self.assertEqual(result['missing_vargas'], [])
|
||||
self.assertEqual(result['calculation_profile'], 'bphs_7_21_27_varga_viswa_compound_relationships')
|
||||
self.assertIn('不是功能吉凶', result['interpretation'])
|
||||
self.assertNotIn('成功', result['interpretation'])
|
||||
|
||||
|
||||
class TestDashaCalculation(unittest.TestCase):
|
||||
|
||||
Reference in New Issue
Block a user