from __future__ import annotations import unittest from .services.llm_pricing import estimate_reference_cost class LlmPricingTest(unittest.TestCase): def test_agy_gemini_reasoning_suffix_uses_base_model_standard_rate(self) -> None: estimate = estimate_reference_cost( provider="agy_cli", model="gemini-3.6-flash-high", tokens_in=35_703, tokens_out=1_129, ) self.assertIsNotNone(estimate) assert estimate is not None self.assertEqual(estimate.cost_usd, 0.062022) self.assertIn("Gemini 3.6 Flash", estimate.rate_label) def test_codex_credit_rate_accounts_for_cached_input(self) -> None: estimate = estimate_reference_cost( provider="codex_cli", model="gpt-5.6-terra", tokens_in=12, cached_input_tokens=2, tokens_out=3, ) self.assertIsNotNone(estimate) assert estimate is not None self.assertEqual(estimate.cost_usd, 0.0000705) self.assertIn("크레딧 환산", estimate.rate_label) def test_unknown_model_does_not_invent_a_price(self) -> None: estimate = estimate_reference_cost( provider="agy_cli", model="gpt-oss-120b-medium", tokens_in=1000, tokens_out=100, ) self.assertIsNone(estimate) if __name__ == "__main__": unittest.main()