41 lines
1.7 KiB
Go
41 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|