"""Tests for SessionInsights in src/type_aliases.py Per-aggregate dataclass regression-guard for the metadata_promotion_20260624 track. CONVENTION: 1-space indentation. NO COMMENTS. """ from __future__ import annotations from dataclasses import FrozenInstanceError import pytest from src.type_aliases import SessionInsights def test_constructor_with_kwargs() -> None: si = SessionInsights(total_tokens=1000, call_count=5, burn_rate=2.5) assert si.total_tokens == 1000 assert si.call_count == 5 assert si.burn_rate == 2.5 def test_field_access() -> None: si = SessionInsights(session_cost=0.42, completed_tickets=3, efficiency=0.85) assert si.session_cost == 0.42 assert si.completed_tickets == 3 assert si.efficiency == 0.85 def test_frozen_raises_on_mutation() -> None: si = SessionInsights() with pytest.raises(FrozenInstanceError): si.total_tokens = 100 def test_to_dict_roundtrip() -> None: si = SessionInsights(total_tokens=100, call_count=2, burn_rate=1.5, session_cost=0.5, completed_tickets=3, efficiency=0.9) d = si.to_dict() assert d["total_tokens"] == 100 assert d["call_count"] == 2 assert d["efficiency"] == 0.9 def test_default_values() -> None: si = SessionInsights() assert si.total_tokens == 0 assert si.call_count == 0 assert si.burn_rate == 0.0 assert si.session_cost == 0.0 assert si.completed_tickets == 0 assert si.efficiency == 0.0 def test_hashability() -> None: si = SessionInsights(total_tokens=10) assert hash(si) is not None