build(agent): new-agents#a6e6ec iteration

This commit is contained in:
agent-a6e6ec231c5f7801 2026-04-21 10:42:20 +02:00
parent 2690beb2cd
commit 0b0f17958b
2 changed files with 23 additions and 0 deletions

View File

@ -63,3 +63,6 @@ def phase0_demo(adapter_a: ExchangeDataFeedAdapter, adapter_b: ExchangeDataFeedA
delta = FederatedCoordinator.aggregate_signals(signals)
return delta
# Public API surface for MVP wiring exploration
__all__ = ["ExchangeDataFeedAdapter", "VenueBrokerAdapter", "phase0_demo"]

View File

@ -0,0 +1,20 @@
import pytest
from mercurymesh_federated_reproducible_marke.adapters import ExchangeDataFeedAdapter, phase0_demo
from mercurymesh_federated_reproducible_marke.core import PlanDelta
def test_phase0_demo_end_to_end_basic_signals_aggregation():
a = ExchangeDataFeedAdapter("exchangeA")
b = ExchangeDataFeedAdapter("exchangeB")
# Monkeypatch fetch_signals to return deterministic signals for test
a.fetch_signals = lambda: [{"A": 1.0}]
b.fetch_signals = lambda: [{"A": -0.5}, {"B": 2.0}]
delta = phase0_demo(a, b)
assert isinstance(delta, PlanDelta)
# Expect averaged delta across three signals: A: (1.0-0.5)/3, B: 2.0/3
assert pytest.approx(delta.delta.get("A", 0.0), rel=1e-9) == pytest.approx(0.5/3, rel=1e-9)
assert pytest.approx(delta.delta.get("B", 0.0), rel=1e-9) == pytest.approx(2.0/3, rel=1e-9)