mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-08-17 18:25:42 +02:00
27 lines
917 B
Python
27 lines
917 B
Python
"""ENG-189: agent_active_ms means time the agent was producing, not turn wall-clock. A stalled
|
|
gap between events books at most the 30s cap, so one wedged turn can't be 92% of the metric."""
|
|
|
|
from backend.apps.agents.manager.streaming.state import TurnState
|
|
|
|
|
|
def p_feed(turn: TurnState, ts: float) -> None:
|
|
if turn.last_event_ts is not None:
|
|
turn.active_ms += int(min(ts - turn.last_event_ts, 30.0) * 1000)
|
|
turn.last_event_ts = ts
|
|
|
|
|
|
def test_stalled_gap_books_the_cap_not_the_wall():
|
|
turn = TurnState()
|
|
p_feed(turn, 1000.0)
|
|
p_feed(turn, 1001.0) # 1s of work
|
|
p_feed(turn, 4601.0) # a 1-HOUR stall books 30s, not 3600s
|
|
p_feed(turn, 4602.5) # 1.5s more work
|
|
assert turn.active_ms == 1000 + 30_000 + 1500
|
|
|
|
|
|
def test_busy_turn_books_real_time():
|
|
turn = TurnState()
|
|
for i in range(11):
|
|
p_feed(turn, 100.0 + i * 0.5)
|
|
assert turn.active_ms == 5_000
|