Clean fragment residue and surface functional audit details

This commit is contained in:
732642856
2026-06-28 18:46:25 +08:00
parent 2994970da2
commit cf5ed67645
15 changed files with 3924 additions and 18 deletions
+2
View File
@@ -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",