Files
ts-anomaly-td/tests/test_render_algo.py
T

38 lines
1.1 KiB
Python

"""render_algo 单元测试。"""
import json
import tempfile
from pathlib import Path
from ts_anomaly_td.visualize import render_algo
def _make_ts_vals_labels(n=200):
"""生成测试用时间序列。"""
ts = [i * 3600_000 for i in range(n)] # 每小时
vals = [float(i % 20) for i in range(n)]
labels = [1 if 50 <= i <= 60 else 0 for i in range(n)]
return ts, vals, labels
def test_render_algo_basic():
"""render_algo 应生成有效 PNG。"""
ts, vals, labels = _make_ts_vals_labels()
windows = [[ts[50], ts[60]]]
with tempfile.TemporaryDirectory() as tmpdir:
out = Path(tmpdir) / "test_algo.png"
result = render_algo(ts, vals, labels, windows, "ksigma", str(out), title="test")
assert Path(result).exists()
assert Path(result).stat().st_size > 5000
def test_render_algo_empty_windows():
"""空检测窗口应正常渲染。"""
ts, vals, labels = _make_ts_vals_labels(50)
with tempfile.TemporaryDirectory() as tmpdir:
out = Path(tmpdir) / "empty.png"
result = render_algo(ts, vals, labels, [], "iqr", str(out))
assert Path(result).exists()