from scripts.yoga_engine import YogaEngine def test_budhaditya_with_combust_mercury_is_conditional(): engine = YogaEngine('references/yoga_rules.json') planets = { 'Sun': {'sign': 'Aries', 'house': 1}, 'Mercury': {'sign': 'Aries', 'house': 1, 'combust': True}, } rows = [row for row in engine.detect(planets, 'Aries') if row['rule_id'] == 'budhaditya_yoga'] assert len(rows) == 1 row = rows[0] assert row['condition_status'] == 'combustion_requires_review' assert row['effects'] == [] assert row['traditional_effects'] assert row['strength'] == 'conditional' assert row['combustion_witness']['planet'] == 'Mercury' def test_budhaditya_without_combustion_keeps_traditional_effects(): engine = YogaEngine('references/yoga_rules.json') planets = { 'Sun': {'sign': 'Aries', 'house': 1}, 'Mercury': {'sign': 'Aries', 'house': 1, 'combust': False}, } rows = [row for row in engine.detect(planets, 'Aries') if row['rule_id'] == 'budhaditya_yoga'] assert len(rows) == 1 assert rows[0]['effects'] assert 'combustion_witness' not in rows[0]