package runner import ( "testing" "github.com/easyai/easyai-ai-gateway/apps/api/internal/store" ) func TestAttemptMetricsIncludesCacheAffinityCoefficient(t *testing.T) { metrics := attemptMetrics(store.RuntimeModelCandidate{ ModelName: "deepseek-chat", ModelType: "text_generate", PlatformID: "deepseek-platform", PlatformPriority: 100, CacheAffinity: store.RuntimeCandidateCacheAffinity{ Key: "conversation:test", RequestCount: 2, CachedInputTokens: 7296, EMAHitRatio: 0.91, LastHitRatio: 0.92, Confidence: 1, Score: 1.74, Boost: 20, AdjustedPriority: 80, Applied: true, }, }, 1, false) if metrics["cacheAffinityScore"] != 1.74 { t.Fatalf("expected cache affinity score in attempt metrics, got %+v", metrics) } if metrics["cacheAffinityCachedInputTokens"] != 7296 { t.Fatalf("expected cached input tokens in attempt metrics, got %+v", metrics) } if metrics["cacheAffinityHitRatio"] != 0.91 || metrics["cacheAffinityLastHitRatio"] != 0.92 { t.Fatalf("expected hit ratios in attempt metrics, got %+v", metrics) } }