From 433af4d1e43208f1c4ae44201c47f05363dd319f Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sat, 21 Mar 2026 08:23:47 +0000 Subject: [PATCH] Add edge case test for short history in _signal_vix_trend Co-authored-by: aguzererler <6199053+aguzererler@users.noreply.github.com> --- tests/unit/test_macro_regime.py | 6 ++++++ tradingagents/dataflows/macro_regime.py | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/unit/test_macro_regime.py b/tests/unit/test_macro_regime.py index 3271f2a4..572602e3 100644 --- a/tests/unit/test_macro_regime.py +++ b/tests/unit/test_macro_regime.py @@ -86,6 +86,12 @@ class TestSignalVixTrend: score, desc = self.fn(vix) assert score == 0 + def test_short_history_is_neutral(self): + vix = _make_series([20.0] * 20) + score, desc = self.fn(vix) + assert score == 0 + assert "insufficient history" in desc + def test_none_series_is_neutral(self): score, desc = self.fn(None) assert score == 0 diff --git a/tradingagents/dataflows/macro_regime.py b/tradingagents/dataflows/macro_regime.py index 5ca30f3e..b828272f 100644 --- a/tradingagents/dataflows/macro_regime.py +++ b/tradingagents/dataflows/macro_regime.py @@ -92,8 +92,8 @@ def _signal_vix_level(vix_price: Optional[float]) -> tuple[int, str]: def _signal_vix_trend(vix_series: Optional[pd.Series]) -> tuple[int, str]: """VIX 5-day SMA vs 20-day SMA: rising VIX = risk-off.""" - if vix_series is None: - return 0, "VIX trend: unavailable (neutral)" + if vix_series is None or len(vix_series) < 21: + return 0, "VIX trend: insufficient history (neutral)" sma5 = _sma(vix_series, 5) sma20 = _sma(vix_series, 20) if sma5 is None or sma20 is None: