Files
Jyotisha/tests/test_argala_source_boundaries.py
T
jesse-uxGrok (agent loop)Cursor
aa87c0f127 fix(argala): keep equal occupancy unresolved until the two-level tiebreak
Upstream e7301feb, 86935c0a, and 4f1536f2. Ketu reverses the count, the ninth is the fifth's obstruction, and a remaining tie stays strength_comparison_required so the consultation card shows 待定. BUG-1386.

Co-Authored-By: Grok (agent loop)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-18 16:41:30 +08:00

33 lines
1.5 KiB
Python

from scripts.argala import calc_argala_for_reference
def test_pvr_ketu_virgo_example_reverses_with_nodes_excluded():
# PVR source p118: Virgo containing Ketu gets 2/4/11/5 from
# Leo/Gemini/Scorpio/Taurus, even if nodes are omitted as occupants.
result = calc_argala_for_reference(5, {
'Ketu': 5, 'Sun': 4, 'Moon': 2, 'Mars': 7, 'Venus': 1,
})
assert [result['primary'][h]['sign'] for h in ('H2', 'H4', 'H11')] == ['Leo', 'Gemini', 'Scorpio']
assert result['secondary']['H5']['sign'] == 'Taurus'
assert result['counting_direction'] == 'antizodiacal'
def test_ninth_obstructs_fifth_not_another_secondary_argala():
result = calc_argala_for_reference(0, {'Jupiter': 4, 'Saturn': 8, 'Mars': 8})
assert result['secondary']['H9']['role'] == 'virodhargala'
assert result['secondary']['H5']['blockers'] == ['Saturn', 'Mars']
assert result['secondary']['H5']['effective'] is False
def test_equal_numbers_need_strength_not_automatic_obstruction():
result = calc_argala_for_reference(0, {'Moon': 1, 'Mars': 11})
assert result['primary']['H2']['effective'] is None
assert result['net_result'] == 'strength_comparison_required'
assert result['verdict_label'] == '待定'
def test_occupied_house_totals_cannot_override_actual_pair():
result = calc_argala_for_reference(0, {'Moon': 1, 'Venus': 1, 'Mars': 11})
assert result['argala_count'] == result['virodhargala_count'] == 1
assert result['net_result'] == 'supported'