40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
import json
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
PACKET = ROOT / "references/oracle/prashna_tajika_numeric_source_hunt_2026_07_22.json"
|
|
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
|
|
|
|
|
def test_prashna_tajika_source_hunt_records_candidates_without_oracle_upgrade():
|
|
data = json.loads(PACKET.read_text(encoding="utf-8"))
|
|
assert data["scope"] == "prashna_tajika_numeric_source_hunt"
|
|
assert data["claim_status"] == "open_queue"
|
|
assert data["truth_matrix_allowed"] is False
|
|
assert data["production_tuning_allowed"] is False
|
|
assert data["summary"]["candidate_count"] == 5
|
|
assert "Source hunt only" in data["boundary"]
|
|
assert "not oracle packets" in data["next_action"]
|
|
|
|
|
|
def test_prashna_tajika_source_hunt_covers_requested_domains():
|
|
rows = {row["source_id"]: row for row in json.loads(PACKET.read_text(encoding="utf-8"))["candidate_sources"]}
|
|
assert rows["prasna_marga_archive_text"]["domain"] == "Prashna/Sphuta"
|
|
assert rows["eastrovedica_lesson49_sphuta_definitions"]["domain"] == "Sphuta"
|
|
assert rows["scribd_gulika_mandi_numeric_candidate"]["domain"] == "Gulika"
|
|
assert rows["astrogle_saham_formula_reference"]["domain"] == "Saham/Tajika"
|
|
assert rows["varshaphala_ms_mehta_pdf_candidate"]["domain"] == "Tajika/Varshaphala"
|
|
for row in rows.values():
|
|
assert row["missing_for_numeric_packet"]
|
|
|
|
|
|
def test_prashna_tajika_source_hunt_is_indexed():
|
|
packets = {
|
|
row["packet_id"]: row
|
|
for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]
|
|
}
|
|
packet = packets["prashna_tajika_numeric_source_hunt_2026_07_22"]
|
|
assert packet["claim_status"] == "open_queue"
|
|
assert packet["consumer_policy"] == "research_observation_only"
|