28 lines
873 B
Python
28 lines
873 B
Python
from signalcanvas_graph_based_market_signal_s.delta_sync import (
|
|
create_plan_delta,
|
|
reconcile_runs,
|
|
sign_delta,
|
|
)
|
|
|
|
|
|
def test_plan_delta_signature_and_reconciliation():
|
|
plan_id = "plan-xyz"
|
|
delta1 = {"AAPL": 1.0}
|
|
delta2 = {"AAPL": -0.25, "MSFT": 0.75}
|
|
version1 = 1
|
|
signer = "integration-signer"
|
|
|
|
# Create two deltas with signatures
|
|
pd1 = create_plan_delta(plan_id, delta1, version1, signer)
|
|
assert isinstance(pd1.signature, str) and len(pd1.signature) > 0
|
|
|
|
pd2 = create_plan_delta(plan_id, delta2, version1 + 1, signer)
|
|
assert isinstance(pd2.signature, str) and len(pd2.signature) > 0
|
|
|
|
# Reconcile as if two partitions produced deltas
|
|
merged = reconcile_runs([pd1], [pd2])
|
|
# AAPL: 1.0 + (-0.25) = 0.75
|
|
# MSFT: 0.75
|
|
assert abs(merged["AAPL"] - 0.75) < 1e-9
|
|
assert abs(merged["MSFT"] - 0.75) < 1e-9
|