22 lines
1.2 KiB
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")
|
|
}
|
|
}
|
|
}
|