Bridge synastry support and enrich VedAstro range scan

This commit is contained in:
732642856
2026-06-28 16:37:07 +08:00
parent 76525ac09b
commit e869f561ff
7 changed files with 266 additions and 2 deletions
+30
View File
@@ -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