| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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
- def test_regime_responds_to_metals_strength():
- snapshot = build_regime_snapshot(
- [
- MarketQuote(symbol="XAU", source="metals_mcp", change_pct=1.8),
- MarketQuote(symbol="XAG", source="metals_mcp", change_pct=1.2),
- MarketQuote(symbol="XPT", source="metals_mcp", change_pct=0.9),
- MarketQuote(symbol="XPD", source="metals_mcp", change_pct=0.7),
- ]
- )
- assert snapshot.components["real_asset_pressure"] > 0
- assert snapshot.regime in {"real_asset_inflation", "neutral", "risk_off", "compression"}
|