44 lines
2.0 KiB
Python
44 lines
2.0 KiB
Python
import json
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
PACKET = ROOT / "references/oracle/shadbala_naisargika_closure_packet_2026_07_20.json"
|
|
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
|
|
|
|
|
def test_naisargika_packet_closes_same_unit_observation_without_truth_upgrade():
|
|
data = json.loads(PACKET.read_text(encoding="utf-8"))
|
|
assert data["scope"] == "shadbala_naisargika_closure_packet"
|
|
assert data["component"] == "naisargika"
|
|
assert data["claim_status"] == "partial"
|
|
assert data["closure_classification"] == "within_tolerance_observation"
|
|
assert data["absolute_parity_ready"] is False
|
|
assert data["production_tuning_allowed"] is False
|
|
assert data["truth_matrix_allowed"] is False
|
|
assert data["summary"] == {
|
|
"component_row_count": 7,
|
|
"max_delta_virupa": 0.0,
|
|
"source_count_per_row": 5,
|
|
"within_tolerance_count": 7,
|
|
}
|
|
|
|
|
|
def test_naisargika_packet_has_all_visible_planets_and_unit_contract():
|
|
data = json.loads(PACKET.read_text(encoding="utf-8"))
|
|
rows = {row["planet"]: row for row in data["rows"]}
|
|
assert set(rows) == {"Sun", "Moon", "Mars", "Mercury", "Jupiter", "Venus", "Saturn"}
|
|
for row in rows.values():
|
|
values = row["normalized_values_virupa"]
|
|
assert set(values) == {"local", "jyotishganit", "xalen", "vp_jain_local", "vp_jain_published"}
|
|
assert max(values.values()) - min(values.values()) == 0
|
|
assert row["unit_contract"] == "Virupa fixed natural-strength table; 60 Virupa = 1 Rupa."
|
|
assert row["closure_status"] == "same_unit_observation_frozen"
|
|
|
|
|
|
def test_naisargika_packet_is_indexed_as_partial_component_closure():
|
|
index = json.loads(INDEX.read_text(encoding="utf-8"))
|
|
packets = {row["packet_id"]: row for row in index["packets"]}
|
|
packet = packets["shadbala_naisargika_closure_packet_2026_07_20"]
|
|
assert packet["claim_status"] == "partial"
|
|
assert packet["domain"] == "shadbala_component_closure"
|