项目文件夹

文件
wehub-resource-sync a06f331eb8
CI / benchmark (push) Has been skipped
install-script / posix-syntax (push) Successful in 6m1s
CI / build-onnx (push) Failing after 6m43s
init-smoke / dry-run (push) Failing after 15m57s
security / govulncheck (push) Has been cancelled
security / trivy-fs (push) Has been cancelled
CI / test (1.26, ubuntu-latest) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
CI / test (1.26, macos-latest) (push) Has been cancelled
CI / build-windows (push) Has been cancelled
CI / lint (push) Has been cancelled
install-script / powershell-syntax (push) Has been cancelled
install-script / install (macos-14) (push) Has been cancelled
install-script / install (ubuntu-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:33:42 +08:00

100 行
3.0 KiB
Go

package rerank
import (
"testing"
"github.com/zzet/gortex/internal/graph"
)
func TestHITSSignal_Name(t *testing.T) {
if (HITSSignal{}).Name() != SignalHITS {
t.Fatalf("HITSSignal.Name() = %q, want %q", (HITSSignal{}).Name(), SignalHITS)
}
}
func TestHITSSignal_AuthorityNormalisation(t *testing.T) {
cand := &Candidate{Node: &graph.Node{ID: "pkg::Authority"}}
// No AuthorityOf closure -> signal sits at 0.
if got := (HITSSignal{}).Contribute("q", cand, &Context{}); got != 0 {
t.Errorf("no AuthorityOf closure: got %v, want 0", got)
}
// A pure authority (hub == 0) keeps its full normalised score.
ctx := &Context{
AuthorityOf: func(id string) float64 { return 0.8 },
HubOf: func(id string) float64 { return 0 },
}
if got := (HITSSignal{}).Contribute("q", cand, ctx); !floatNear(got, 0.8, 1e-9) {
t.Errorf("pure authority: got %v, want 0.8", got)
}
// Authority 0 -> contribution 0.
ctxZero := &Context{AuthorityOf: func(id string) float64 { return 0 }}
if got := (HITSSignal{}).Contribute("q", cand, ctxZero); got != 0 {
t.Errorf("zero authority: got %v, want 0", got)
}
}
// TestHITSSignal_InfraPenalty is the core feature assertion: a node
// that is also a strong hub (a called-by-everything utility / an
// orchestrator) scores BELOW a true authority even when its raw
// authority value is similar -- the hub penalty divides it down.
func TestHITSSignal_InfraPenalty(t *testing.T) {
sig := HITSSignal{}
authorityNode := &Candidate{Node: &graph.Node{ID: "pkg::TrueAuthority"}}
infraNode := &Candidate{Node: &graph.Node{ID: "pkg::InfraUtil"}}
ctx := &Context{
AuthorityOf: func(id string) float64 {
// Both have a comparable raw authority value.
return 0.7
},
HubOf: func(id string) float64 {
// The infra utility is also a massive hub; the true
// authority is a pure destination.
if id == "pkg::InfraUtil" {
return 1.0
}
return 0.0
},
}
authScore := sig.Contribute("q", authorityNode, ctx)
infraScore := sig.Contribute("q", infraNode, ctx)
if infraScore >= authScore {
t.Fatalf("a high-hub infra node (%v) must score below a true authority (%v)",
infraScore, authScore)
}
// With hub == 1 the score is exactly halved.
if !floatNear(infraScore, 0.35, 1e-9) {
t.Errorf("infra score with hub=1 should be 0.7/(1+1)=0.35, got %v", infraScore)
}
}
// TestHITSSignal_RegisteredInPipeline confirms the signal is wired
// into the default lineup with a tuned weight below fan_in's.
func TestHITSSignal_RegisteredInPipeline(t *testing.T) {
found := false
for _, s := range DefaultSignals() {
if s.Name() == SignalHITS {
found = true
}
}
if !found {
t.Fatal("SignalHITS missing from DefaultSignals()")
}
w := DefaultWeights()
hitsW, ok := w[SignalHITS]
if !ok {
t.Fatal("SignalHITS missing from DefaultWeights()")
}
if hitsW >= w[SignalFanIn] {
t.Errorf("HITS weight %v should sit below fan_in weight %v -- it complements, not replaces",
hitsW, w[SignalFanIn])
}
if hitsW <= 0 {
t.Errorf("HITS weight should be positive, got %v", hitsW)
}
}