Spaces:
Running
Running
File size: 1,570 Bytes
c20d7c0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | """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
|