diff --git a/tests/unit/test_macro_regime.py b/tests/unit/test_macro_regime.py index fdd8dbbd..6d80db13 100644 --- a/tests/unit/test_macro_regime.py +++ b/tests/unit/test_macro_regime.py @@ -23,6 +23,28 @@ def _trending_series(start: float, end: float, n: int = 100) -> pd.Series: return _make_series(list(np.linspace(start, end, n))) +# --------------------------------------------------------------------------- +# Helpers tests +# --------------------------------------------------------------------------- + +class TestFmtPct: + def setup_method(self): + from tradingagents.dataflows.macro_regime import _fmt_pct + self.fn = _fmt_pct + + @pytest.mark.parametrize( + ("val", "expected"), + [ + (None, "N/A"), + (1.234, "+1.2%"), + (-1.234, "-1.2%"), + (0.0, "+0.0%"), + ], + ) + def test_fmt_pct(self, val, expected): + assert self.fn(val) == expected + + # --------------------------------------------------------------------------- # Individual signal tests # --------------------------------------------------------------------------- diff --git a/tradingagents/dataflows/macro_regime.py b/tradingagents/dataflows/macro_regime.py index e2162d89..00cda195 100644 --- a/tradingagents/dataflows/macro_regime.py +++ b/tradingagents/dataflows/macro_regime.py @@ -71,8 +71,7 @@ def _pct_change_n(series: pd.Series, n: int) -> Optional[float]: def _fmt_pct(val: Optional[float]) -> str: if val is None: return "N/A" - sign = "+" if val >= 0 else "" - return f"{sign}{val:.2f}%" + return f"{val:+.1f}%" # ---------------------------------------------------------------------------