Bridge synastry support and enrich VedAstro range scan
This commit is contained in:
@@ -96,6 +96,36 @@ def test_career_argala_bridge_uses_tenth_house_as_modifier_only() -> None:
|
||||
assert "argala_support" in strict["event_judgement"]["secondary_context"]
|
||||
|
||||
|
||||
def test_career_kakshya_support_adds_small_score_bump_without_label_override() -> None:
|
||||
base_result = _base_career_result()
|
||||
base_result["modules"]["dasa_convergence"]["domain_activations"]["career_status"] = {
|
||||
"convergence_level": "L1",
|
||||
"probability": "+15-20%",
|
||||
}
|
||||
base = _collect_strict_evidence("career", base_result)
|
||||
result = _base_career_result()
|
||||
result["modules"]["dasa_convergence"]["domain_activations"]["career_status"] = {
|
||||
"convergence_level": "L1",
|
||||
"probability": "+15-20%",
|
||||
}
|
||||
result["modules"]["kakshya"] = {
|
||||
"summary": {"average_strength": 6.7},
|
||||
"planets": {"Sun": {"kakshya_strength": 7.0}},
|
||||
}
|
||||
|
||||
strict = _collect_strict_evidence("career", result)
|
||||
|
||||
assert strict["present_evidence"]["kakshya_career_support"] == {
|
||||
"level": "supportive",
|
||||
"source": "kakshya_career_bridge_v1",
|
||||
"signals": ["kakshya_career_support"],
|
||||
"average_strength": 6.7,
|
||||
}
|
||||
assert strict["event_judgement"]["dominant_label"] == "career_status"
|
||||
assert strict["event_judgement"]["score"] >= base["event_judgement"]["score"]
|
||||
assert "kakshya_career_support" in strict["event_judgement"]["secondary_context"]
|
||||
|
||||
|
||||
def test_career_caps_confidence_when_provided_shadbala_components_are_incomplete() -> None:
|
||||
result = _base_career_result()
|
||||
result["modules"]["dasa_convergence"]["domain_activations"]["career_status"] = {
|
||||
|
||||
@@ -114,6 +114,59 @@ def test_relationship_collects_vedastro_range_scan_as_external_activation_contex
|
||||
assert "external_activation_support" in strict["event_judgement"]["secondary_context"]
|
||||
|
||||
|
||||
def test_relationship_synastry_bridge_adds_context_and_small_score_bump_without_overriding_label_gate() -> None:
|
||||
base = _collect_strict_evidence("relationship", _base_relationship_result())
|
||||
result = _base_relationship_result()
|
||||
result["modules"]["synastry"] = {
|
||||
"total_score": 29.0,
|
||||
"max_score": 36.0,
|
||||
"is_approved": True,
|
||||
"additional_kutas": {
|
||||
"Mahendra": "good",
|
||||
"StreeDeergha": "good",
|
||||
"Vedha": "good",
|
||||
"Rajju": {"result": "good", "group": None, "effect": ""},
|
||||
"BadConstellations": "good",
|
||||
},
|
||||
}
|
||||
|
||||
strict = _collect_strict_evidence("relationship", result)
|
||||
|
||||
assert strict["present_evidence"]["synastry_relationship_support"] == {
|
||||
"level": "supportive",
|
||||
"source": "synastry_relationship_bridge_v1",
|
||||
"signals": ["ashtakoot_approved", "ashtakoot_high_score", "kuta_exception_clean"],
|
||||
"total_score": 29.0,
|
||||
"approved": True,
|
||||
}
|
||||
assert strict["event_judgement"]["dominant_label"] == "legal_marriage"
|
||||
assert strict["event_judgement"]["score"] == base["event_judgement"]["score"] + 5
|
||||
assert "synastry_support" in strict["event_judgement"]["secondary_context"]
|
||||
|
||||
|
||||
def test_relationship_synastry_bridge_cannot_lift_label_when_core_marriage_layers_are_missing() -> None:
|
||||
result = _base_relationship_result()
|
||||
del result["modules"]["varga_full"]["D9_Navamsa"]
|
||||
del result["modules"]["special_lagnas"]["Upapada_Lagna"]
|
||||
result["modules"]["synastry"] = {
|
||||
"total_score": 31.0,
|
||||
"is_approved": True,
|
||||
"additional_kutas": {
|
||||
"Vedha": "good",
|
||||
"Rajju": {"result": "good"},
|
||||
"BadConstellations": "good",
|
||||
},
|
||||
}
|
||||
|
||||
strict = _collect_strict_evidence("relationship", result)
|
||||
|
||||
assert strict["present_evidence"]["synastry_relationship_support"]["level"] == "supportive"
|
||||
assert strict["event_judgement"]["dominant_label"] is None
|
||||
assert "synastry_support" in strict["event_judgement"]["secondary_context"]
|
||||
assert "d9_navamsa" in strict["missing_evidence"]
|
||||
assert "upapada_lagna" in strict["missing_evidence"]
|
||||
|
||||
|
||||
def test_relationship_dignity_guardrail_ignores_non_relevant_planets() -> None:
|
||||
result = _base_relationship_result()
|
||||
result["modules"]["chart"] = {
|
||||
|
||||
@@ -280,6 +280,14 @@ def test_vedastro_service_adapter_can_normalize_mock_range_scan_response() -> No
|
||||
assert report["status"] == "ok"
|
||||
assert report["operation"] == "range_scan"
|
||||
assert report["domain"] == "marriage"
|
||||
assert report["event_count"] == 1
|
||||
assert report["top_event"] == {
|
||||
"event_id": "jupiter_7h_window",
|
||||
"score": 72,
|
||||
"start": "2026-05-01",
|
||||
"end": "2026-06-01",
|
||||
"tags": ["marriage", "transit"],
|
||||
}
|
||||
assert report["evidence_ledger"][0]["event_id"] == "jupiter_7h_window"
|
||||
assert report["evidence_ledger"][0]["domain"] == "marriage"
|
||||
assert report["evidence_ledger"][0]["score"] == 72
|
||||
|
||||
Reference in New Issue
Block a user