Files
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

72 lines
1.9 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package rerank
import "testing"
func TestIsSymbolQuery_PositiveCases(t *testing.T) {
cases := []string{
// CamelCase / PascalCase
"FooBar",
"validateToken",
"HTTPServer",
// snake_case
"validate_user_token",
"my_var",
// Namespace qualifiers
"pkg.Type",
"Module::Symbol",
"path/to/file.go",
"path\\to\\file",
// All-uppercase acronyms (length >= 2)
"URL",
"JWT",
"API",
}
for _, q := range cases {
if !IsSymbolQuery(q) {
t.Errorf("IsSymbolQuery(%q) = false, want true", q)
}
}
}
func TestIsSymbolQuery_NegativeCases(t *testing.T) {
cases := []string{
"",
" ",
"validate user token", // multi-word NL
"the user manager", // multi-word NL
"what does this do", // multi-word NL
"http server", // multi-word despite identifier-shaped tokens
"single", // single lowercase word — too ambiguous
"a", // single letter
"A", // single uppercase letter (still too ambiguous)
"42", // pure digits
"...", // pure punctuation
}
for _, q := range cases {
if IsSymbolQuery(q) {
t.Errorf("IsSymbolQuery(%q) = true, want false", q)
}
}
}
func TestAlphaFor_SymbolVsNL(t *testing.T) {
if got := AlphaFor("FooBar"); got != AlphaSymbol {
t.Errorf("AlphaFor(symbol) = %v, want %v", got, AlphaSymbol)
}
if got := AlphaFor("what does this do"); got != AlphaNL {
t.Errorf("AlphaFor(NL) = %v, want %v", got, AlphaNL)
}
// Empty falls through to NL — defensible default for nil queries.
if got := AlphaFor(""); got != AlphaNL {
t.Errorf("AlphaFor(empty) = %v, want %v", got, AlphaNL)
}
}
func TestAlphaSymbolLessThanAlphaNL(t *testing.T) {
// Sanity: symbol α MUST be smaller than NL α so the auto-blend
// actually leans toward BM25 for identifier queries.
if !(AlphaSymbol < AlphaNL) {
t.Fatalf("AlphaSymbol (%v) must be less than AlphaNL (%v)", AlphaSymbol, AlphaNL)
}
}