Files

38 lines
1.6 KiB
Go
Raw Permalink Normal View History

2026-08-26 06:41:07 +08:00
package opsconfig
import "testing"
func TestAgentQualityEvaluationMetrics(t *testing.T) {
metrics := map[string]any{
"report_schema": "agent-eval-report-v1", "suite_sha256": "b5cd3b798a01a48ddf0081f2fcc2a917f93681a3ee2fa55bbf4190466de3bef8",
"agent_version": "agent-v1", "model_config_ref": "runtime-config://voice/agent-v1",
"environment": "mock", "executed_at": "2026-08-24T10:00:00Z",
"cases_total": 10, "cases_passed": 10, "failed_check_count": 0,
"conversation_success_rate": 1.0, "first_response_p95_ms": 1200,
"interruption_recovery_rate": 1.0, "average_response_chars": 36.5,
"salutation_accuracy": 1.0, "memory_accuracy": 1.0, "fabricated_facts": 0,
"story_source_completeness": 1.0, "sensitive_information_handling_rate": 1.0,
}
if !validEvaluationMetrics(EvidenceTypeAgentQualityV1, "PASSED", metrics) {
t.Fatal("valid standard Agent quality evidence was rejected")
}
metrics["cases_passed"] = 9
if validEvaluationMetrics(EvidenceTypeAgentQualityV1, "PASSED", metrics) {
t.Fatal("incomplete PASSED evidence was accepted")
}
metrics["failed_check_count"] = 1
if !validEvaluationMetrics(EvidenceTypeAgentQualityV1, "FAILED", metrics) {
t.Fatal("well-formed FAILED evidence was rejected")
}
delete(metrics, "memory_accuracy")
if validEvaluationMetrics(EvidenceTypeAgentQualityV1, "FAILED", metrics) {
t.Fatal("standard evidence missing a required metric was accepted")
}
if !validEvaluationMetrics(EvidenceTypeGeneric, "PASSED", map[string]any{"legacy": true}) {
t.Fatal("generic evaluation compatibility was broken")
}
if validEvaluationMetrics("UNKNOWN", "PASSED", metrics) {
t.Fatal("unknown evidence type was accepted")
}
}