35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import unittest
|
|
|
|
from tradingagents.instruments import (
|
|
get_asset_class,
|
|
is_crypto_symbol,
|
|
normalize_instrument_symbol,
|
|
)
|
|
|
|
|
|
class InstrumentSymbolTests(unittest.TestCase):
|
|
def test_preserves_exchange_suffix(self):
|
|
self.assertEqual(normalize_instrument_symbol(" cnc.to "), "CNC.TO")
|
|
|
|
def test_normalizes_slash_pair(self):
|
|
self.assertEqual(normalize_instrument_symbol("eth/usdt"), "ETH-USD")
|
|
|
|
def test_normalizes_concat_pair(self):
|
|
self.assertEqual(normalize_instrument_symbol("BTCUSDT"), "BTC-USD")
|
|
|
|
def test_normalizes_bare_major_crypto(self):
|
|
self.assertEqual(normalize_instrument_symbol("btc"), "BTC-USD")
|
|
self.assertEqual(normalize_instrument_symbol("ont"), "ONT-USD")
|
|
|
|
def test_detects_crypto_asset_class(self):
|
|
self.assertTrue(is_crypto_symbol("ETH/USDT"))
|
|
self.assertEqual(get_asset_class("BTC"), "crypto")
|
|
|
|
def test_keeps_equity_asset_class(self):
|
|
self.assertFalse(is_crypto_symbol("AAPL"))
|
|
self.assertEqual(get_asset_class("AAPL"), "equity")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|