You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.8 KiB
82 lines
2.8 KiB
#!/usr/bin/env python3
|
|
# 测试TQSDK适配器的_get_mock_all_symbols方法
|
|
|
|
import os
|
|
import sys
|
|
|
|
# 确保能导入项目模块
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from qihuo_analyzer.data.api_adapters.tqsdk_adapter import TqSdkAdapter
|
|
|
|
def test_mock_all_symbols():
|
|
"""测试_get_mock_all_symbols方法是否返回exchange_map中映射的所有品种"""
|
|
print("=== 测试TQSDK适配器_get_mock_all_symbols方法 ===")
|
|
|
|
# 创建TQSDK适配器实例
|
|
adapter = TqSdkAdapter()
|
|
|
|
# 获取模拟品种列表
|
|
mock_symbols = adapter._get_mock_all_symbols()
|
|
|
|
print(f"\n1. 测试结果:")
|
|
print(f"模拟品种列表长度: {len(mock_symbols)}")
|
|
print(f"exchange_map长度: {len(adapter.exchange_map)}")
|
|
print(f"两者长度是否一致: {len(mock_symbols) == len(adapter.exchange_map)}")
|
|
|
|
print("\n2. 模拟品种列表:")
|
|
print(sorted(mock_symbols))
|
|
|
|
print("\n3. exchange_map中的品种:")
|
|
print(sorted(adapter.exchange_map.keys()))
|
|
|
|
# 验证所有exchange_map中的品种都在模拟列表中
|
|
print("\n4. 验证所有exchange_map中的品种都在模拟列表中:")
|
|
missing_symbols = []
|
|
for product_code in adapter.exchange_map:
|
|
expected_symbol = f"{product_code}2603"
|
|
if expected_symbol not in mock_symbols:
|
|
missing_symbols.append(expected_symbol)
|
|
|
|
if missing_symbols:
|
|
print(f"✗ 缺失的品种: {missing_symbols}")
|
|
else:
|
|
print("✓ 所有exchange_map中的品种都在模拟列表中")
|
|
|
|
# 验证模拟列表中的品种都在exchange_map中
|
|
print("\n5. 验证模拟列表中的品种都在exchange_map中:")
|
|
invalid_symbols = []
|
|
for symbol in mock_symbols:
|
|
# 提取品种代码
|
|
if len(symbol) == 5:
|
|
# 3字符品种代码
|
|
product_code = symbol[:3]
|
|
elif len(symbol) == 4:
|
|
# 2字符或1字符品种代码
|
|
# 先尝试2字符
|
|
product_code = symbol[:2]
|
|
if product_code not in adapter.exchange_map:
|
|
# 尝试1字符
|
|
product_code = symbol[:1]
|
|
else:
|
|
product_code = symbol[:2]
|
|
|
|
if product_code not in adapter.exchange_map:
|
|
invalid_symbols.append(symbol)
|
|
|
|
if invalid_symbols:
|
|
print(f"✗ 无效的品种: {invalid_symbols}")
|
|
else:
|
|
print("✓ 模拟列表中的所有品种都在exchange_map中")
|
|
|
|
# 测试get_all_symbols方法
|
|
print("\n6. 测试get_all_symbols方法:")
|
|
all_symbols = adapter.get_all_symbols()
|
|
print(f"get_all_symbols返回长度: {len(all_symbols)}")
|
|
print(f"与模拟列表长度是否一致: {len(all_symbols) == len(mock_symbols)}")
|
|
|
|
print("\n=== 测试完成 ===")
|
|
|
|
if __name__ == "__main__":
|
|
test_mock_all_symbols()
|