mirror of
https://ghfast.top/https://github.com/aeroxw/tick-stock-panel.git
synced 2026-09-12 23:44:16 +08:00
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import polars as pl
|
|
import pytest
|
|
from fastapi import HTTPException
|
|
|
|
from app.api.ext_data import _filter_dimension_member_rows
|
|
|
|
|
|
def test_filter_dimension_member_rows_matches_complete_tags() -> None:
|
|
rows = pl.DataFrame({
|
|
"symbol": ["000001.SZ", "000002.SZ", "000003.SZ", "000004.SZ"],
|
|
"所属概念": ["人工智能;芯片", "人工智能体;机器人", "芯片 / 人工智能", None],
|
|
})
|
|
|
|
result = _filter_dimension_member_rows(rows, "所属概念", "人工智能")
|
|
|
|
assert result.get_column("symbol").to_list() == ["000001.SZ", "000003.SZ"]
|
|
|
|
|
|
def test_filter_dimension_member_rows_matches_industry_hierarchy() -> None:
|
|
rows = pl.DataFrame({
|
|
"symbol": ["000001.SZ", "000002.SZ", "000003.SZ"],
|
|
"所属行业": ["金融-银行-股份制银行", "电子-半导体-数字芯片", "电子元件"],
|
|
})
|
|
|
|
result = _filter_dimension_member_rows(rows, "所属行业", "电子")
|
|
|
|
assert result.get_column("symbol").to_list() == ["000002.SZ"]
|
|
|
|
|
|
def test_filter_dimension_member_rows_rejects_unknown_field() -> None:
|
|
rows = pl.DataFrame({"symbol": ["000001.SZ"]})
|
|
|
|
with pytest.raises(HTTPException, match="字段 '所属行业' 不存在"):
|
|
_filter_dimension_member_rows(rows, "所属行业", "银行")
|