Files
Veyra/internal/service/candidate_analysis_test.go

22 lines
1.2 KiB
Go

package service
import (
"git.sundynix.cn/Blizzard/Veyra/internal/model"
"testing"
)
func TestAIConclusionValidation(t *testing.T) {
c := model.CandidateRevision{Snapshot: model.CandidateContent{Symbol: "000042", Exchange: "SZSE", Evidence: []model.CandidateEvidence{{SourceURL: "https://example.com"}}}}
valid := model.AIConclusion{SchemaVersion: "candidate_analysis.v1", Symbol: "000042", Exchange: "SZSE", Decision: "APPROVE", Summary: "日线研究", Risks: "历史样本有限", EvidenceIndices: []int{0}, MissingInformation: []string{"未提供公告"}}
if err := ValidateAIConclusion(valid, c); err != nil {
t.Fatal(err)
}
for _, change := range []func(*model.AIConclusion){func(a *model.AIConclusion) { a.Symbol = "000043" }, func(a *model.AIConclusion) { a.Decision = "BUY" }, func(a *model.AIConclusion) { a.EvidenceIndices = []int{1} }, func(a *model.AIConclusion) { a.EvidenceIndices = []int{0, 0} }, func(a *model.AIConclusion) { a.EvidenceIndices = []int{} }, func(a *model.AIConclusion) { a.Risks = "" }, func(a *model.AIConclusion) { a.MissingInformation = nil }} {
a := valid
change(&a)
if ValidateAIConclusion(a, c) == nil {
t.Fatal("invalid conclusion accepted")
}
}
}