48 lines
1.5 KiB
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)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|