import time from signalvault_verifiable_privacy_preservin.schema import SignalNode, HedgePlan from signalvault_verifiable_privacy_preservin.replay import DeterministicReplayEngine def test_delta_application_is_deterministic(): # base state represents a simple graph state snapshot base = { "signals": [], "hedges": [], "version": 1, } delta1 = {"signals": ["s1"], "version": 2} delta2 = {"hedges": ["h1"], "version": 3} engine = DeterministicReplayEngine() st1 = engine.apply_delta(base, delta1) st2 = engine.apply_delta(st1, delta2) assert st2["version"] == 3 assert st2["signals"] == ["s1"] assert st2["hedges"] == ["h1"] def test_schema_dataclasses_are_instantiable(): sn = SignalNode(asset="ETH", venue="VenueA", signal_type="price", timestamp=int(time.time()), quality=0.9) hp = HedgePlan(id="hp1", delta={"action": "buy"}) assert sn.asset == "ETH" assert hp.id == "hp1"