import 'package:flutter_test/flutter_test.dart'; import 'package:halkyon_app/halkyon_app.dart'; /// An assistant's model by its own name, where its provider shows beside /// it (Halkyon Learn's ADR 0021, D69). void main() { group("Anthropic's models", () { const anthropic = AssistantProvider.anthropic; test('go without the family they share', () { expect(anthropic.modelName('Claude Haiku 4.5'), 'Haiku 4.5'); expect(anthropic.modelName('Claude Opus 4.1'), 'Opus 4.1'); expect(anthropic.modelName('claude Sonnet 4'), 'Sonnet 4'); }); test('keep a name not led by it, or nothing besides it', () { expect(anthropic.modelName('Claude'), 'Claude'); expect(anthropic.modelName('Claudette'), 'Claudette'); expect(anthropic.modelName('Our tutor'), 'Our tutor'); }); }); test("OpenAI's and every other provider's stay as they are", () { expect(AssistantProvider.openai.modelName('GPT-5'), 'GPT-5'); expect(AssistantProvider.openai.modelName('GPT-5 mini'), 'GPT-5 mini'); expect( AssistantProvider.google.modelName('Gemini 2.5 Pro'), 'Gemini 2.5 Pro', ); expect( AssistantProvider.of('llm.example.org').modelName('Claude Haiku 4.5'), 'Claude Haiku 4.5', reason: 'a proxy names its models as it likes', ); }); }