mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-04 01:48:22 +08:00
3ca95b294d
* feat: integrate NOFXi agent into dev * Enhance NOFXi agent workflow and diagnostics
66 lines
1.4 KiB
Go
66 lines
1.4 KiB
Go
package agent
|
|
|
|
import "testing"
|
|
|
|
func TestIsStockSymbol(t *testing.T) {
|
|
tests := []struct {
|
|
sym string
|
|
want bool
|
|
}{
|
|
// Known crypto base symbols — must NOT be detected as stock
|
|
{"BTC", false},
|
|
{"ETH", false},
|
|
{"SOL", false},
|
|
{"BNB", false},
|
|
{"XRP", false},
|
|
{"DOGE", false},
|
|
{"ADA", false},
|
|
{"AVAX", false},
|
|
{"DOT", false},
|
|
{"LINK", false},
|
|
{"PEPE", false},
|
|
{"SHIB", false},
|
|
{"TRUMP", false},
|
|
{"USDT", false},
|
|
{"USDC", false},
|
|
{"W", false}, // single letter crypto
|
|
|
|
// Crypto pairs — must NOT be stock
|
|
{"BTCUSDT", false},
|
|
{"ETHUSDT", false},
|
|
{"SOLUSDT", false},
|
|
{"DOGEUSDT", false},
|
|
|
|
// Real stock tickers — must be detected as stock
|
|
{"AAPL", true},
|
|
{"TSLA", true},
|
|
{"NVDA", true},
|
|
{"MSFT", true},
|
|
{"GOOGL", true},
|
|
{"AMZN", true},
|
|
{"META", true},
|
|
{"AMD", true},
|
|
{"PLTR", true},
|
|
{"BA", true},
|
|
{"F", true}, // Ford — 1 letter
|
|
{"GM", true}, // 2 letters
|
|
{"JPM", true}, // 3 letters
|
|
|
|
// Mixed / edge cases
|
|
{"btc", false}, // lowercase crypto
|
|
{"aapl", true}, // lowercase stock (uppercased internally)
|
|
{"BTC123", false}, // not pure letters
|
|
{"123456", false}, // digits
|
|
{"", false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.sym, func(t *testing.T) {
|
|
got := isStockSymbol(tt.sym)
|
|
if got != tt.want {
|
|
t.Errorf("isStockSymbol(%q) = %v, want %v", tt.sym, got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|