"""Session 13 - Cortex metacognition formula tests. Per Phase A docs/CORTEX_ARCHITECTURE.md Decisions 32-36 + the user's Session 13 proposal acceptance. Tests T1-T5 cover inter_brain_agreement (3 cases), collapse_suspicion, and the average_confidence / budget_remaining_frac scalars. """ from __future__ import annotations from typing import Dict from cortex.metacognition import compute_metacognition_state from cortex.schemas import BrainRecommendation, EvidenceCitation from CrisisWorldCortex.models import DeployResource, NoOp, RestrictMovement def _rec( brain: str, *, action=None, top_confidence: float = 0.7, evidence_count: int = 1, ) -> BrainRecommendation: """Minimal valid BrainRecommendation for metacognition tests.""" if action is None: action = NoOp() return BrainRecommendation( brain=brain, # type: ignore[arg-type] top_action=action, top_confidence=top_confidence, minority_actions=[], reasoning_summary="brief summary.", evidence=[ EvidenceCitation(source="telemetry", ref=f"{brain}.r{i}", excerpt="x") for i in range(evidence_count) ], falsifier="(test)", uncertainty=0.3, tokens_used=0, ) def _make_state(brain_recs: Dict[str, BrainRecommendation], **overrides): defaults = dict( tick=3, round_=1, phase="Divergence", brain_recommendations=brain_recs, tick_tokens_used=0, tick_budget=6000, ticks_remaining=9, max_ticks=12, worst_region_infection=0.0, preserved_dissent_count=0, challenge_used_this_tick=False, ) defaults.update(overrides) return compute_metacognition_state(**defaults) # T1 def test_inter_brain_agreement_all_match() -> None: """Decision 32: all 3 brains' top_action.kind match -> 1.0.""" recs = { "epidemiology": _rec("epidemiology", action=NoOp()), "logistics": _rec("logistics", action=NoOp()), "governance": _rec("governance", action=NoOp()), } state = _make_state(recs) assert state.inter_brain_agreement == 1.0 # T2 def test_inter_brain_agreement_two_match() -> None: """Decision 32: 2/3 match -> 0.5.""" recs = { "epidemiology": _rec("epidemiology", action=NoOp()), "logistics": _rec("logistics", action=NoOp()), "governance": _rec( "governance", action=DeployResource(region="R1", resource_type="test_kits", quantity=100), ), } state = _make_state(recs) assert state.inter_brain_agreement == 0.5 # T3 def test_inter_brain_agreement_all_differ() -> None: """Decision 32: 3 distinct kinds -> 0.0.""" recs = { "epidemiology": _rec("epidemiology", action=NoOp()), "logistics": _rec( "logistics", action=DeployResource(region="R1", resource_type="test_kits", quantity=100), ), "governance": _rec("governance", action=RestrictMovement(region="R1", severity="moderate")), } state = _make_state(recs) assert state.inter_brain_agreement == 0.0 # T4 def test_collapse_suspicion_flags_identical_no_evidence() -> None: """Decision 35: 1.0 iff all top_actions match AND all evidence empty.""" # All same NoOp + zero evidence -> collapse recs_collapse = { "epidemiology": _rec("epidemiology", action=NoOp(), evidence_count=0), "logistics": _rec("logistics", action=NoOp(), evidence_count=0), "governance": _rec("governance", action=NoOp(), evidence_count=0), } state = _make_state(recs_collapse) assert state.collapse_suspicion == 1.0 # Same actions but with evidence -> not collapse (evidence shows reasoning) recs_with_ev = { "epidemiology": _rec("epidemiology", action=NoOp(), evidence_count=2), "logistics": _rec("logistics", action=NoOp(), evidence_count=2), "governance": _rec("governance", action=NoOp(), evidence_count=2), } state = _make_state(recs_with_ev) assert state.collapse_suspicion == 0.0 # T5 def test_metacognition_average_confidence_and_budget_frac() -> None: """Decision 33: average_confidence = mean. Phase A section 5: budget_remaining_frac.""" recs = { "epidemiology": _rec("epidemiology", top_confidence=0.3), "logistics": _rec("logistics", top_confidence=0.6), "governance": _rec("governance", top_confidence=0.9), } state = _make_state(recs, tick_tokens_used=3000, tick_budget=6000) assert state.average_confidence == 0.6 # (0.3+0.6+0.9)/3 assert state.budget_remaining_frac == 0.5 # (6000-3000)/6000