Files
silk/server-go/internal/handler/inspection_test.go
T
2026-08-14 01:16:50 +08:00

56 lines
1.4 KiB
Go

package handler
import (
"testing"
"silk-server-go/internal/service"
)
func TestIsUUID(t *testing.T) {
valid := []string{
"1271e550-ccf1-443e-8964-980c6047e2f0",
"00000000-0000-0000-0000-000000000000",
}
invalid := []string{"smoke-room", "", "not-a-uuid", "1271e550ccf1443e8964980c6047e2f0"}
for _, s := range valid {
if !isUUID(s) {
t.Errorf("%q 应为合法 UUID", s)
}
}
for _, s := range invalid {
if isUUID(s) {
t.Errorf("%q 不应被当作 UUID", s)
}
}
}
func TestBuildRiskInputUsesAbnormalProbability(t *testing.T) {
in := buildRiskInput(&service.AIDetectResponse{
ModelVersion: "silk-yolo-2026.08.1",
Status: "abnormal",
AbnormalProbability: 0.93,
})
if in.AI == nil || *in.AI != 0.93 {
t.Fatalf("AI 异常概率应进入风险输入,实际 %v", in.AI)
}
if in.ModelVersion != "silk-yolo-2026.08.1" {
t.Errorf("modelVersion = %s", in.ModelVersion)
}
}
func TestBuildRiskInputUnknownKeepsAIMissing(t *testing.T) {
in := buildRiskInput(&service.AIDetectResponse{Status: "unknown"})
if in.AI != nil {
t.Fatalf("unknown 状态不应把 0 当作 AI 组件,实际 %v", in.AI)
}
}
func TestBuildRiskInputFallsBackToDetections(t *testing.T) {
in := buildRiskInput(&service.AIDetectResponse{
Detections: []service.AIDetection{{ClassName: "sick", Confidence: 0.9}},
})
if in.AI == nil || *in.AI != 0.9 {
t.Fatalf("旧 AI 响应应从检测类别计算异常概率,实际 %v", in.AI)
}
}