Clean fragment residue and surface functional audit details
This commit is contained in:
@@ -285,6 +285,8 @@ def test_full_reading_reports_ayanamsa_metadata_and_ai_prompt_pack() -> None:
|
||||
assert "高严谨" in functional_rows[0]["note"]
|
||||
assert "关键功能吉星=" in functional_rows[0]["note"]
|
||||
assert "关键功能凶星=" in functional_rows[0]["note"]
|
||||
assert "功能中性星=" in functional_rows[0]["note"]
|
||||
assert "Yogakaraka=" in functional_rows[0]["note"]
|
||||
dasha_rows = [row for row in audit_table if row["technique"] == "Vimshottari + Narayana Cross-check"]
|
||||
assert dasha_rows
|
||||
assert dasha_rows[0]["status"] == "used"
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from mcp_server import _collect_strict_evidence
|
||||
from scripts.functional_benefics import derive_functional_benefic_malefic
|
||||
|
||||
@@ -74,3 +78,27 @@ def test_relationship_functional_layer_uses_ascendant_even_when_planets_missing(
|
||||
assert "Sun" in functional["functional_benefics"]
|
||||
assert "Venus" in functional["functional_malefics"]
|
||||
assert "functional_benefic_malefic_used" in strict["event_judgement"]["secondary_context"]
|
||||
|
||||
|
||||
def test_oracle_functional_benefics_cli_exposes_json_contract() -> None:
|
||||
completed = subprocess.run(
|
||||
[
|
||||
sys.executable,
|
||||
"scripts/oracle_functional_benefics.py",
|
||||
"--ascendant",
|
||||
"Leo",
|
||||
"--format",
|
||||
"json",
|
||||
],
|
||||
check=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
report = json.loads(completed.stdout)
|
||||
|
||||
assert report["status"] == "used"
|
||||
assert report["ascendant"] == "Leo"
|
||||
assert "Sun" in report["functional_benefics"]
|
||||
assert "Venus" in report["functional_malefics"]
|
||||
assert "Mars" in report["yogakarakas"]
|
||||
assert report["source"] == "strict_functional_benefic_malefic_v1"
|
||||
|
||||
@@ -167,6 +167,34 @@ def test_relationship_synastry_bridge_cannot_lift_label_when_core_marriage_layer
|
||||
assert "upapada_lagna" in strict["missing_evidence"]
|
||||
|
||||
|
||||
def test_relationship_synastry_bridge_understands_nested_bad_constellations_and_exception_mitigation() -> None:
|
||||
result = _base_relationship_result()
|
||||
result["modules"]["synastry"] = {
|
||||
"total_score": 18.0,
|
||||
"max_score": 36.0,
|
||||
"is_approved": True,
|
||||
"exceptions": ["Nadi Dosha mitigated by good Bhakoot and Rajju."],
|
||||
"additional_kutas": {
|
||||
"Mahendra": "good",
|
||||
"StreeDeergha": "good",
|
||||
"Vedha": "good",
|
||||
"Rajju": {"result": "good", "group": None, "effect": ""},
|
||||
"BadConstellations": {"result": "good", "issues": []},
|
||||
},
|
||||
}
|
||||
|
||||
strict = _collect_strict_evidence("relationship", result)
|
||||
|
||||
assert strict["present_evidence"]["synastry_relationship_support"] == {
|
||||
"level": "moderate",
|
||||
"source": "synastry_relationship_bridge_v1",
|
||||
"signals": ["ashtakoot_approved", "exception_mitigated_match", "kuta_exception_clean"],
|
||||
"total_score": 18.0,
|
||||
"approved": True,
|
||||
}
|
||||
assert "synastry_support" in strict["event_judgement"]["secondary_context"]
|
||||
|
||||
|
||||
def test_relationship_dignity_guardrail_ignores_non_relevant_planets() -> None:
|
||||
result = _base_relationship_result()
|
||||
result["modules"]["chart"] = {
|
||||
|
||||
@@ -20,6 +20,8 @@ def test_real_reading_quality_checklist_exists_and_covers_structural_gaps() -> N
|
||||
"covered",
|
||||
"complete",
|
||||
"Functional Benefic/Malefic",
|
||||
"Yogakaraka",
|
||||
"functional neutrals",
|
||||
"Vimshottari + Narayana",
|
||||
"production_tuning_allowed",
|
||||
"Technique Audit Table",
|
||||
|
||||
Reference in New Issue
Block a user