forked from niuniu/llm-intelligence
feat(intraday): add discovery and verification watch pipeline
This commit is contained in:
@@ -31,3 +31,64 @@ func TestBuildSignalPageMode(t *testing.T) {
|
||||
t.Fatalf("官方发布日 page_mode 错误: %q", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildSignalPageModeTreatsVerifiedDiscoveryPromoAsHot(t *testing.T) {
|
||||
got := buildSignalPageMode(signalDailySignals{}, []signalModelEvent{{EventType: "promo_campaign", ModelName: "GPT-5.6"}})
|
||||
if got != "hot" {
|
||||
t.Fatalf("已验证活动事件应触发 hot, got=%q", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterDiscoveryEventsDropsLeakAndCandidateOnly(t *testing.T) {
|
||||
events := []signalModelEvent{
|
||||
{EventType: "official_release", ModelName: "GPT-5.6", Priority: 120},
|
||||
{EventType: "leak_or_rumor", ModelName: "GPT-5.6", Priority: 200},
|
||||
{EventType: "unknown", ModelName: "Mystery", Priority: 50},
|
||||
}
|
||||
filtered := filterVerifiedDiscoverySignalEvents(events)
|
||||
if len(filtered) != 1 {
|
||||
t.Fatalf("期望仅保留 1 条正式事实事件, got=%d", len(filtered))
|
||||
}
|
||||
if filtered[0].EventType != "official_release" {
|
||||
t.Fatalf("错误保留了非正式事件: %+v", filtered)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMergeVerifiedDiscoveryEventsPrefersNativeFact(t *testing.T) {
|
||||
native := []signalModelEvent{{
|
||||
EventType: "official_release",
|
||||
ModelName: "GPT-5.6",
|
||||
ProviderName: "OpenAI",
|
||||
PrimarySource: "native_release",
|
||||
EvidenceDetail: "native evidence",
|
||||
Priority: 120,
|
||||
}}
|
||||
discovery := []signalModelEvent{{
|
||||
EventType: "official_release",
|
||||
ModelName: "GPT-5.6",
|
||||
ProviderName: "OpenAI",
|
||||
PrimarySource: "discovery_release",
|
||||
EvidenceDetail: "discovery evidence",
|
||||
SourceKindLabel: "官方博客",
|
||||
Priority: 110,
|
||||
}}
|
||||
merged := mergeVerifiedDiscoveryEvents(native, discovery)
|
||||
if len(merged) != 1 {
|
||||
t.Fatalf("期望去重后只剩 1 条事件, got=%d", len(merged))
|
||||
}
|
||||
if merged[0].PrimarySource != "native_release" {
|
||||
t.Fatalf("原生事实不应被 discovery 覆盖: %+v", merged[0])
|
||||
}
|
||||
if merged[0].SourceKindLabel != "官方博客" {
|
||||
t.Fatalf("原生事实应补入 discovery 证据缺口: %+v", merged[0])
|
||||
}
|
||||
}
|
||||
|
||||
func TestMergeVerifiedDiscoveryEventsDropsUnverifiedPriceNarrative(t *testing.T) {
|
||||
native := []signalModelEvent{{EventType: "new_model", ModelName: "DeepSeek-V4-Flash", ProviderName: "DeepSeek", Priority: 80}}
|
||||
discovery := []signalModelEvent{{EventType: "leak_or_rumor", ModelName: "DeepSeek-V4-Flash", ProviderName: "DeepSeek", Priority: 130}}
|
||||
merged := mergeVerifiedDiscoveryEvents(native, discovery)
|
||||
if len(merged) != 1 || merged[0].EventType != "new_model" {
|
||||
t.Fatalf("非正式 discovery 事件不应进入正式快照: %+v", merged)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user