Files
Jyotisha/tests/test_relationship_gender_role_technique_registry.py
2026-07-19 11:15:17 +08:00

55 lines
2.1 KiB
Python

from __future__ import annotations
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
REGISTRY = ROOT / "references/relationship_gender_role_technique_registry_2026_07_19.json"
def test_relationship_gender_role_registry_keeps_gender_out_of_base_chart() -> None:
data = json.loads(REGISTRY.read_text(encoding="utf-8"))
assert data["scope"] == "relationship_gender_role_technique_registry"
assert data["default_profile_policy"] == "neutral_partner_a_b"
assert data["base_chart_requires_gender"] is False
assert data["production_tuning_allowed"] is False
assert data["truth_policy"] == "technique_registry_not_prediction_truth"
def test_relationship_gender_role_registry_covers_core_indian_and_western_methods() -> None:
data = json.loads(REGISTRY.read_text(encoding="utf-8"))
ids = {row["id"] for row in data["techniques"]}
for required in {
"vedic_venus_jupiter_spouse_significators",
"vedic_kuja_manglik_role_weighting",
"ashtakoot_yoni_energy_not_user_gender",
"ashtakoot_nadi_rajju_reproductive_safety",
"jaimini_darakaraka_upapada_spouse_role",
"d9_navamsa_gendered_interpretation_layer",
"adhana_conception_gender_sensitive_scaffold",
"western_venus_mars_sun_moon_partner_projection",
"western_synastry_composite_role_neutral_mode",
"western_progressed_angles_relationship_timing",
}:
assert required in ids
def test_relationship_gender_role_registry_marks_license_and_integration_boundaries() -> None:
data = json.loads(REGISTRY.read_text(encoding="utf-8"))
for row in data["techniques"]:
assert row["integration_action"] in {
"use_existing_local",
"add_interpretation_layer",
"oracle_only",
"blocked_until_source_verified",
}
assert row["gender_dependency"] in {
"none",
"interpretation_only",
"role_weighting",
"traditional_rule_variant",
}
assert row["license_boundary"]
assert row["claim_boundary"]