56 lines
1.4 KiB
Go
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)
|
|
}
|
|
}
|