import pytest from datetime import datetime from mercurymesh.contracts import MarketSignal, AggregatedSignal, PlanDelta, PrivacyBudget, AuditLog, ProvenanceProof def test_market_signal_roundtrip(): ms = MarketSignal( venue_id="venue-a", symbol="ABC", timestamp=datetime.utcnow(), features={"liquidity_proxy": 1.0, "order_flow_intensity": 0.5}, ) assert ms.venue_id == "venue-a" assert ms.symbol == "ABC" assert isinstance(ms.features, dict) def test_aggregated_signal_schema(): agg = AggregatedSignal( venues=["venue-a", "venue-b"], feature_vector={"liquidity_proxy": 0.8, "volatility_proxy": 0.2}, privacy_budget_used=0.1, nonce="nonce-123", merkle_proof=None, ) assert "liquidity_proxy" in agg.feature_vector def test_provenance_and_audit(): prov = ProvenanceProof( venue_id="venue-a", timestamp=datetime.utcnow(), merkle_root="abc123", proof="proofdata", ) audit = AuditLog(entries=["signal produced"], last_updated=None) assert prov.venue_id == "venue-a" assert isinstance(audit.entries, list)