144 lines
6.3 KiB
Python
144 lines
6.3 KiB
Python
#!/usr/bin/env python3
|
|
"""Regression tests for external Dasha/Shadbala oracle boundary reporting."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import subprocess
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
|
|
|
|
def test_oracle_boundary_audit_reports_dasha_and_shadbala_boundaries() -> None:
|
|
completed = subprocess.run(
|
|
[
|
|
sys.executable,
|
|
"scripts/oracle_boundary_audit.py",
|
|
"--oracle-file",
|
|
"references/oracle/dasha_shadbala_oracle_cases.json",
|
|
],
|
|
cwd=ROOT,
|
|
text=True,
|
|
capture_output=True,
|
|
timeout=60,
|
|
check=False,
|
|
)
|
|
|
|
assert completed.returncode == 0, completed.stderr or completed.stdout
|
|
report = json.loads(completed.stdout)
|
|
|
|
assert report["scope"] == "external_oracle_boundary_audit"
|
|
assert report["summary"]["dasha_cases"] >= 1
|
|
assert report["summary"]["shadbala_cases"] >= 1
|
|
assert report["summary"]["longitude_cases"] >= 1
|
|
assert report["summary"]["template_cases"] >= 5
|
|
assert report["summary"]["template_status_counts"]["template_only"] >= 5
|
|
assert report["summary"]["template_status_counts"].get("external_verified", 0) == 0
|
|
assert report["summary"]["production_tuning_recommended"] is False
|
|
assert "template cases" in " ".join(report["summary"]["open_items"])
|
|
|
|
dasha = report["dasha_cases"][0]
|
|
assert dasha["case_id"] == "pdf_user_REDACTED_YEAR_redacted_place_vimshottari_boundary"
|
|
assert dasha["engine_start_datetime"].startswith("1986-05-23T22:45:10")
|
|
assert dasha["target_start_date"] == "1986-05-18"
|
|
assert dasha["date_delta_days"] == 5
|
|
assert dasha["required_moon_delta_degrees"] > 0
|
|
assert dasha["calibration_decision"] == "do_not_tune_single_reference"
|
|
|
|
shadbala = report["shadbala_cases"][0]
|
|
assert shadbala["case_id"] == "pdf_user_REDACTED_YEAR_redacted_place_shadbala_absolute_boundary"
|
|
assert shadbala["engine_method"].startswith("Shadbala六重力量")
|
|
assert shadbala["component_oracle_status"] == "component_targets_sample_only"
|
|
assert shadbala["target_authority"] == "sample_only_not_external_oracle"
|
|
assert shadbala["calibration_decision"] == "component_oracle_required"
|
|
assert shadbala["engine_totals"]["Sun"]["total_rupas"] > 0
|
|
assert shadbala["engine_totals"]["Sun"]["components"]["sthana_bala"] > 0
|
|
|
|
longitude = report["longitude_cases"][0]
|
|
assert longitude["case_id"] == "vedastro_user_REDACTED_YEAR_redacted_place_longitude_boundary"
|
|
assert longitude["target_source"] == "vedastro_python_sdk_antigravity_2026_06_24"
|
|
assert longitude["calibration_decision"] == "external_position_reference_only"
|
|
assert longitude["comparisons"]["Moon"]["engine_sign"] == "Aquarius"
|
|
assert longitude["comparisons"]["Moon"]["target_sign"] == "Aquarius"
|
|
assert longitude["comparisons"]["Moon"]["abs_delta_arcsec"] > 0
|
|
assert longitude["max_abs_delta_arcsec"] < 120
|
|
assert longitude["within_threshold"] is True
|
|
|
|
template = report["template_cases"][0]
|
|
assert template["case_id"] == "template_user_REDACTED_YEAR_moon_longitude_lahiri"
|
|
assert template["status"] == "template_only"
|
|
assert template["ready_for_calibration"] is False
|
|
assert template["missing_target_fields"]
|
|
|
|
|
|
def test_oracle_boundary_audit_compares_external_verified_template_rows(tmp_path: Path) -> None:
|
|
oracle = json.loads((ROOT / "references/oracle/dasha_shadbala_oracle_cases.json").read_text(encoding="utf-8"))
|
|
case = oracle["template_cases"][1]
|
|
case["status"] = "external_verified"
|
|
case["target"]["vimshottari_start_date"] = "1951-11-01"
|
|
case["target"]["shadbala_components"] = {
|
|
planet: {
|
|
"sthana": 1.0,
|
|
"dig": 2.0,
|
|
"kala": 3.0,
|
|
"chesta": 4.0,
|
|
"naisargika": 5.0,
|
|
"drik": 6.0,
|
|
"total_rupa": 21.0,
|
|
}
|
|
for planet in ["Sun", "Moon", "Mars", "Mercury", "Jupiter", "Venus", "Saturn"]
|
|
}
|
|
case["evidence_packet"] = {
|
|
"capture_id": "external_template_steve_jobs_dasha_lahiri",
|
|
"status": "external_verified",
|
|
"metadata": {
|
|
"tool_name": "JHora",
|
|
"tool_version_or_url": "manual-jhora-8.0",
|
|
"capture_date": "2026-06-26",
|
|
"source_artifact": "references/oracle/artifacts/steve_jobs_jhora_redacted.png",
|
|
"ayanamsa": "lahiri",
|
|
"node_mode": "true",
|
|
"timezone": "UTC-08:00",
|
|
"operator_note": "Typed from redacted external JHora screenshot.",
|
|
},
|
|
}
|
|
oracle_path = tmp_path / "oracle.json"
|
|
oracle_path.write_text(json.dumps(oracle, ensure_ascii=False), encoding="utf-8")
|
|
|
|
completed = subprocess.run(
|
|
[
|
|
sys.executable,
|
|
"scripts/oracle_boundary_audit.py",
|
|
"--oracle-file",
|
|
str(oracle_path),
|
|
],
|
|
cwd=ROOT,
|
|
text=True,
|
|
capture_output=True,
|
|
timeout=60,
|
|
check=False,
|
|
)
|
|
|
|
assert completed.returncode == 0, completed.stderr or completed.stdout
|
|
report = json.loads(completed.stdout)
|
|
assert report["summary"]["external_verified_template_cases"] == 1
|
|
assert report["summary"]["production_tuning_recommended"] is False
|
|
comparison = report["template_comparisons"][0]
|
|
assert comparison["case_id"] == "template_steve_jobs_dasha_lahiri"
|
|
assert comparison["status"] == "external_verified"
|
|
assert comparison["dasha"]["target_start_date"] == "1951-11-01"
|
|
assert comparison["dasha"]["date_delta_days"] is not None
|
|
assert comparison["shadbala"]["planets"]["Sun"]["external_total_rupa"] == 21.0
|
|
assert comparison["shadbala"]["planets"]["Sun"]["total_rupa_delta"] is not None
|
|
assert comparison["shadbala"]["unit"] == "rupa"
|
|
assert comparison["shadbala"]["component_tolerances"]["sthana"] == 0.1
|
|
assert comparison["shadbala"]["component_tolerances"]["drik"] == 1.5
|
|
assert comparison["shadbala"]["planets"]["Sun"]["component_deltas"]["sthana"]["tolerance_rupa"] == 0.1
|
|
assert comparison["shadbala"]["planets"]["Sun"]["component_deltas"]["drik"]["tolerance_rupa"] == 1.5
|
|
assert comparison["shadbala"]["global_scaling_check"]["allowed"] is False
|
|
assert comparison["shadbala"]["global_scaling_check"]["recommendation"] == "reject_global_scaling"
|
|
assert comparison["calibration_decision"] == "do_not_tune_single_template"
|