MCPcopy Create free account
hub / github.com/astercloud/aster / TestMultiModelTokenCounter

Function TestMultiModelTokenCounter

pkg/context/token_counter_test.go:251–313  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

249}
250
251func TestMultiModelTokenCounter(t *testing.T) {
252 multi := NewMultiModelTokenCounter()
253
254 // 注册计数器
255 multi.RegisterCounter("gpt-4", NewGPT4Counter())
256 multi.RegisterCounter("claude", NewClaudeCounter())
257
258 tests := []struct {
259 name string
260 modelName string
261 text string
262 wantModel string
263 }{
264 {
265 name: "exact match gpt-4",
266 modelName: "gpt-4",
267 text: "Hello",
268 wantModel: "gpt-4",
269 },
270 {
271 name: "exact match claude",
272 modelName: "claude",
273 text: "Hello",
274 wantModel: "claude-sonnet-4-5",
275 },
276 {
277 name: "fuzzy match gpt-4-turbo",
278 modelName: "gpt-4-turbo",
279 text: "Hello",
280 wantModel: "gpt-4",
281 },
282 {
283 name: "fuzzy match claude-opus",
284 modelName: "claude-3-opus",
285 text: "Hello",
286 wantModel: "claude-sonnet-4-5",
287 },
288 {
289 name: "unknown model uses default",
290 modelName: "unknown-model",
291 text: "Hello",
292 wantModel: "default",
293 },
294 }
295
296 for _, tt := range tests {
297 t.Run(tt.name, func(t *testing.T) {
298 counter := multi.GetCounter(tt.modelName)
299 if counter.ModelName() != tt.wantModel {
300 t.Errorf("GetCounter(%v).ModelName() = %v, want %v", tt.modelName, counter.ModelName(), tt.wantModel)
301 }
302
303 // 测试 CountForModel
304 count, err := multi.CountForModel(context.Background(), tt.modelName, tt.text)
305 if err != nil {
306 t.Errorf("CountForModel() error = %v", err)
307 }
308 if count <= 0 {

Callers

nothing calls this directly

Calls 8

RegisterCounterMethod · 0.95
GetCounterMethod · 0.95
CountForModelMethod · 0.95
NewGPT4CounterFunction · 0.85
NewClaudeCounterFunction · 0.85
ModelNameMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected