package domain import ( "testing" "git.cin.su/m/Assistant/contracts/capability" ) func TestRateCognitiveBindingRequiresSupportedEvidence(t *testing.T) { rating := RateCognitiveBinding(capability.ResolvedCognitiveBinding{}) if rating.Category != capability.ModelRatingUnrated || rating.OverallScoreMillis != 0 { t.Fatalf("rating=%+v", rating) } } func TestRateCognitiveBindingUsesEvidenceNotProviderName(t *testing.T) { quality, critical, latency := int64(900), int64(0), int64(400_000) base := capability.ResolvedCognitiveBinding{ Provider: capability.ProviderInstance{Kind: "openai-compatible-chat-v1"}, Evaluation: &capability.EvaluatedCapability{Result: capability.EvaluationSupported, QualityScoreMillis: &quality, CriticalFailureMillis: &critical}, Performance: &capability.PerformanceEvidence{LatencyMicros: &latency}, } other := base other.Provider.Kind = "ollama-v1" left, right := RateCognitiveBinding(base), RateCognitiveBinding(other) if left != right || left.Category != capability.ModelRatingQuality { t.Fatalf("provider changed rating: left=%+v right=%+v", left, right) } } func TestRateCognitiveBindingClassifiesSlowEvidenceAsBalanced(t *testing.T) { quality, critical, latency := int64(800), int64(0), int64(20_000_000) rating := RateCognitiveBinding(capability.ResolvedCognitiveBinding{ Evaluation: &capability.EvaluatedCapability{Result: capability.EvaluationSupported, QualityScoreMillis: &quality, CriticalFailureMillis: &critical}, Performance: &capability.PerformanceEvidence{LatencyMicros: &latency}, }) if rating.Category != capability.ModelRatingBalanced || rating.LatencyScoreMillis != 200 { t.Fatalf("rating=%+v", rating) } }