diff --git a/tests/test_trend_portfolio.py b/tests/test_trend_portfolio.py index 07b1e44..91915a8 100644 --- a/tests/test_trend_portfolio.py +++ b/tests/test_trend_portfolio.py @@ -60,11 +60,14 @@ def test_paper_advance_matches_backtest_slice(): # equity sull'ultimo tratto (skip warmup) tail = combo[-500:] eq_ref = np.cumprod(1.0 + np.clip(tail, -0.99, None)) - # ricostruzione "alla paper" deve dare lo stesso fattore - factor = float(eq_ref[-1] / eq_ref[0]) + # ricostruzione "alla paper" deve dare lo stesso fattore. NB fix 2026-07-24: + # l'equity parte da 1.0 PRIMA della fetta -> il fattore della fetta e' eq_ref[-1]. + # (Il vecchio eq_ref[-1]/eq_ref[0] divideva via (1+tail[0]): passava solo finche' + # combo[-500] era esattamente 0.0 — bug latente emerso con l'avanzare dei dati.) + factor = float(eq_ref[-1]) assert factor > 0 # sanity: il fattore equivale al prodotto dei (1+combo) - assert np.isclose(factor, np.prod(1.0 + np.clip(tail, -0.99, None)) / (1.0), rtol=1e-9) + assert np.isclose(factor, np.prod(1.0 + np.clip(tail, -0.99, None)), rtol=1e-9) def test_tsmom_blend_range():