haixunMaster/haixun-backend/internal/library/knowledge/bootstrap_test.go

48 lines
1.5 KiB
Go

package knowledge
import "testing"
func TestSupplementGraphFromResearchMap(t *testing.T) {
graph := Graph{Seed: "化療 沐浴乳", Nodes: []Node{}}
pillars := []string{
"化療皮膚敏感無香沐浴乳",
"乳癌病友沐浴用品挑選",
"荷爾蒙治療對香味敏感",
"癌症康復後換清潔品牌",
"抗敏無香沐浴乳推薦",
"化療期間皮膚照護",
}
questions := []string{
"化療後皮膚敏感要換什麼沐浴乳",
"乳癌治療中不能用有香味的沐浴乳嗎",
"癌症病人適合用的無香沐浴乳推薦",
"荷爾蒙治療皮膚乾癢怎麼挑沐浴乳",
"打標靶後對香味很敏感怎麼辦",
"康復後不想再用有香精的清潔用品",
"癌症病友都用什麼牌子沐浴乳",
"化療期間沐浴乳挑選經驗分享",
}
SupplementGraphFromResearchMap(&graph, "化療 沐浴乳", pillars, questions)
if len(graph.Nodes) < 12 {
t.Fatalf("expected >=12 nodes, got %d", len(graph.Nodes))
}
DeriveSearchTagsFromGraph(&graph, PatrolTagInput{
ProductName: "抗敏無香沐浴乳",
Questions: questions,
Pillars: pillars,
})
if graph.PainTagCount < 8 {
t.Fatalf("expected pain tags, got %d", graph.PainTagCount)
}
for _, node := range graph.Nodes {
if len(node.DerivedTags.Relevance)+len(node.DerivedTags.Recency) == 0 {
continue
}
for _, tag := range append(node.DerivedTags.Relevance, node.DerivedTags.Recency...) {
if len([]rune(tag)) < 6 {
t.Fatalf("tag too short %q", tag)
}
}
}
}