Venus/Jupiter/Moon periods no longer collapse into one marriage-opportunity line. Full reading reports the ten BPHS conditional dasha families; Skill 6.9.16. Co-authored-by: Cursor <cursoragent@cursor.com>
66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
"""Event-class evidence items for marriage themes."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(ROOT / "scripts"))
|
|
|
|
from relationship_analysis import analyze_relationship # noqa: E402
|
|
from relationship_event_class_evidence import build_event_class_evidence # noqa: E402
|
|
|
|
|
|
def _theme_evidence(technique, chart, conclusion, sentiment, strength, *, source, details=None):
|
|
return {
|
|
"technique": technique,
|
|
"chart": chart,
|
|
"conclusion": conclusion,
|
|
"sentiment": sentiment,
|
|
"strength": strength,
|
|
"details": {**(details or {}), "source": source},
|
|
}
|
|
|
|
|
|
def _moon_saturn_seventh_house() -> dict:
|
|
return {
|
|
"Moon": {"sign": "Aquarius", "house": 7, "longitude": 311.48},
|
|
"Saturn": {"sign": "Aquarius", "house": 7, "longitude": 319.01},
|
|
"Venus": {"sign": "Pisces", "house": 8, "longitude": 341.99},
|
|
"Jupiter": {"sign": "Virgo", "house": 2, "longitude": 165.27},
|
|
"Sun": {"sign": "Leo", "house": 1, "longitude": 125.0},
|
|
}
|
|
|
|
|
|
def test_moon_saturn_seventh_with_venus_ad_emits_romantic_and_legal_items() -> None:
|
|
relationship = analyze_relationship(
|
|
_moon_saturn_seventh_house(),
|
|
asc_sign="Leo",
|
|
dasha_info={"maha_dasha": "Saturn", "antar_dasha": "Venus"},
|
|
ul_sign="Libra",
|
|
darakaraka="Sun",
|
|
)
|
|
items = build_event_class_evidence(relationship, _theme_evidence)
|
|
by_name = {item["technique"]: item for item in items}
|
|
assert "Romantic-activation" in by_name
|
|
assert "Legal-marriage" in by_name
|
|
assert by_name["Romantic-activation"]["strength"] == "weak"
|
|
assert by_name["Romantic-activation"]["sentiment"] == "neutral"
|
|
assert by_name["Legal-marriage"]["details"]["hits"]
|
|
|
|
|
|
def test_pratyantar_venus_does_not_emit_legal_marriage_item() -> None:
|
|
relationship = analyze_relationship(
|
|
_moon_saturn_seventh_house(),
|
|
asc_sign="Leo",
|
|
dasha_info={"maha_dasha": "Saturn", "antar_dasha": "Mercury", "pratyantar": "Venus"},
|
|
ul_sign="Libra",
|
|
darakaraka="Sun",
|
|
)
|
|
split = relationship["event_class_split"]
|
|
assert "Venus_pd" in split["pd_hits"]
|
|
assert "Venus_dasha" not in split["legal_marriage"]["hits"]
|
|
items = build_event_class_evidence(relationship, _theme_evidence)
|
|
assert all(item["technique"] != "Legal-marriage" for item in items)
|