"""Mock LLM provider for testing.""" from __future__ import annotations from physcom.llm.base import LLMProvider from physcom.models.domain import MetricBound class MockLLMProvider(LLMProvider): """Returns deterministic stub responses for testing.""" def __init__(self, default_estimates: dict[str, float] | None = None) -> None: self._defaults = default_estimates or {} def estimate_physics( self, combination_description: str, metrics: list[MetricBound] ) -> dict[str, float]: result = {} for mb in metrics: result[mb.metric_name] = self._defaults.get(mb.metric_name, 0.5) return result def review_plausibility( self, combination_description: str, scores: dict[str, float] ) -> tuple[str, bool]: avg = sum(scores.values()) / max(len(scores), 1) if avg > 0.5: return ("This concept appears plausible and worth further investigation.", True) return ("This concept has significant feasibility challenges.", False)