import pandas as pd from vnpy.trader.constant import Exchange, Interval from sanguo_data.config import DataConfig from sanguo_data.datareader import read_parquet_daily, guess_exchange def test_read_parquet_daily_returns_bardata(tmp_path): year_dir = tmp_path / "2026" year_dir.mkdir() df = pd.DataFrame({ "date": ["2026-01-05", "2026-01-06"], "open": [10.0, 11.0], "high": [10.5, 11.5], "low": [9.8, 10.8], "close": [10.2, 11.2], "volume": [10000, 12000], }) df.to_parquet(year_dir / "600000.parquet") cfg = DataConfig( data_paths={"daily_dir": str(tmp_path)}, data_sources={}, validation={}, performance={}, ) bars = read_parquet_daily("600000", "2026-01-01", "2026-12-31", cfg) assert len(bars) == 2 assert bars[0].symbol == "600000" assert bars[0].open_price == 10.0 def test_guess_exchange_sh(): assert guess_exchange("600000").value == "SSE" def test_guess_exchange_sz(): assert guess_exchange("000001").value == "SZSE"