1package provider
2
3import "testing"
4
5func TestReasoningEffortMappings(t *testing.T) {
6 cases := []struct {
7 level string
8 model string
9 openai string
10 anthCompat string
11 codex string
12 budget int
13 normalized string
14 }{
15 {"off", "gpt-5.6-sol", "", "", "", 0, ""},
16 {"minimum", "gpt-5.6-sol", "low", "low", "low", 1024, "minimum"},
17 {"minimal", "gpt-5.6-sol", "low", "low", "low", 1024, "minimum"},
18 {"low", "gpt-5.6-sol", "low", "low", "low", 2048, "low"},
19 {"medium", "gpt-5.6-sol", "medium", "medium", "medium", 8192, "medium"},
20 {"high", "gpt-5.6-sol", "high", "high", "high", 16384, "high"},
21 {"maximum", "gpt-5.6-sol", "high", "xhigh", "xhigh", 32768, "xhigh"},
22 {"xhigh", "gpt-5.6-sol", "high", "xhigh", "xhigh", 32768, "xhigh"},
23 {"max", "gpt-5.6-sol", "high", "max", "max", 32768, "max"},
24 {"max", "gpt-5.5", "high", "max", "xhigh", 32768, "max"},
25 }
26 for _, tc := range cases {
27 if got := NormalizeReasoning(tc.level); got != tc.normalized {
28 t.Errorf("NormalizeReasoning(%q)=%q want %q", tc.level, got, tc.normalized)
29 }
30 if got := OpenAIReasoningEffort(tc.level); got != tc.openai {
31 t.Errorf("OpenAIReasoningEffort(%q)=%q want %q", tc.level, got, tc.openai)
32 }
33 if got := OpenAICompatAnthropicEffort(tc.level); got != tc.anthCompat {
34 t.Errorf("OpenAICompatAnthropicEffort(%q)=%q want %q", tc.level, got, tc.anthCompat)
35 }
36 if got := OpenAICodexReasoningEffort(tc.level, tc.model); got != tc.codex {
37 t.Errorf("OpenAICodexReasoningEffort(%q, %q)=%q want %q", tc.level, tc.model, got, tc.codex)
38 }
39 if got := ReasoningBudget(tc.level); got != tc.budget {
40 t.Errorf("ReasoningBudget(%q)=%d want %d", tc.level, got, tc.budget)
41 }
42 }
43}