Spaces:
Running
Running
| """Tests for serialization utilities.""" | |
| import pandas as pd | |
| from app.utils.serialization import _normalize_text, dataframe_to_records, to_jsonable | |
| def test_normalize_text_passthrough_ascii(): | |
| assert _normalize_text("hello") == "hello" | |
| def test_normalize_text_chinese_preserved(): | |
| assert _normalize_text("主力净流入") == "主力净流入" | |
| def test_normalize_text_bytes_utf8(): | |
| result = _normalize_text(b"test") | |
| assert result == "test" | |
| def test_normalize_text_bytes_garbled(): | |
| # Garbled bytes should be normalized without raising | |
| result = _normalize_text(b"\xc0\xaf\xc0\xfa") | |
| assert isinstance(result, str) | |
| assert len(result) > 0 | |
| def test_to_jsonable_dict_chinese_keys(): | |
| data = {"主力净流入": 100, "涨跌幅": -2.5} | |
| result = to_jsonable(data) | |
| assert "主力净流入" in result | |
| assert "涨跌幅" in result | |
| assert result["主力净流入"] == 100 | |
| def test_to_jsonable_dict_bytes_keys(): | |
| data = {b"key1": "value1"} | |
| result = to_jsonable(data) | |
| assert "key1" in result | |
| assert result["key1"] == "value1" | |
| def test_dataframe_to_records_chinese_columns(): | |
| df = pd.DataFrame({"日期": ["2024-01-01"], "收盘价": [10.5], "涨跌幅": [2.1]}) | |
| records = dataframe_to_records(df) | |
| assert len(records) == 1 | |
| assert "日期" in records[0] | |
| assert "收盘价" in records[0] | |
| assert "涨跌幅" in records[0] | |
| def test_dataframe_to_records_limit(): | |
| df = pd.DataFrame({"a": range(100)}) | |
| records = dataframe_to_records(df, limit=10) | |
| assert len(records) == 10 | |