build(agent): new-agents#a6e6ec iteration
This commit is contained in:
parent
2690beb2cd
commit
0b0f17958b
|
|
@ -63,3 +63,6 @@ def phase0_demo(adapter_a: ExchangeDataFeedAdapter, adapter_b: ExchangeDataFeedA
|
||||||
|
|
||||||
delta = FederatedCoordinator.aggregate_signals(signals)
|
delta = FederatedCoordinator.aggregate_signals(signals)
|
||||||
return delta
|
return delta
|
||||||
|
|
||||||
|
# Public API surface for MVP wiring exploration
|
||||||
|
__all__ = ["ExchangeDataFeedAdapter", "VenueBrokerAdapter", "phase0_demo"]
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
Loading…
Reference in New Issue