| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- from argus_mcp.models import MarketQuote
- from argus_mcp.regime import build_regime_snapshot
- def test_regime_prefers_risk_on_when_qqq_leads():
- snapshot = build_regime_snapshot(
- [
- MarketQuote(symbol="QQQ", source="test", change_pct=2.0),
- MarketQuote(symbol="SPY", source="test", change_pct=0.5),
- MarketQuote(symbol="BTCUSD", source="test", change_pct=2.5),
- MarketQuote(symbol="ETHUSD", source="test", change_pct=4.0),
- MarketQuote(symbol="HYG", source="test", change_pct=0.8),
- MarketQuote(symbol="UUP", source="test", change_pct=-0.3),
- MarketQuote(symbol="VXX", source="test", change_pct=-1.5),
- ]
- )
- assert snapshot.regime == "risk_on"
- assert snapshot.confidence > 0
- assert snapshot.components["risk_appetite"] > 0
- def test_regime_prefers_stress_when_vol_spikes_and_credit_weakens():
- snapshot = build_regime_snapshot(
- [
- MarketQuote(symbol="QQQ", source="test", change_pct=-1.5),
- MarketQuote(symbol="SPY", source="test", change_pct=-0.9),
- MarketQuote(symbol="BTCUSD", source="test", change_pct=-3.5),
- MarketQuote(symbol="HYG", source="test", change_pct=-1.0),
- MarketQuote(symbol="UUP", source="test", change_pct=0.7),
- MarketQuote(symbol="VXX", source="test", change_pct=4.5),
- MarketQuote(symbol="UVXY", source="test", change_pct=8.0),
- MarketQuote(symbol="TLT", source="test", change_pct=1.0),
- ]
- )
- assert snapshot.regime in {"stress", "risk_off"}
- assert snapshot.components["stress"] > 0
- def test_regime_handles_no_data():
- snapshot = build_regime_snapshot([])
- assert snapshot.regime == "no_data"
- assert snapshot.confidence == 0.0
|