31 lines
967 B
Python
31 lines
967 B
Python
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"
|