Skip to content

Commit 4e53327

Browse files
committed
Metrics: added tests
1 parent 3d369bc commit 4e53327

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

libp2p/peer/peerdata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ def record_latency(self, new_latency: float) -> None:
186186
if s > 1 or s < 0:
187187
s = 0.1
188188

189-
if self.latmap is None:
189+
if self.latmap == 0:
190190
self.latmap = new_latency
191191
else:
192192
prev = self.latmap

tests/core/peer/test_peerdata.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,35 @@ def test_get_privkey_not_found():
157157
peer_data = PeerData()
158158
with pytest.raises(PeerDataError):
159159
peer_data.get_privkey()
160+
161+
162+
# Test case for recording latency for the first time
163+
def test_record_latency_initial():
164+
peer_data = PeerData()
165+
assert peer_data.latency_EWMA() == 0
166+
167+
peer_data.record_latency(100.0)
168+
assert peer_data.latency_EWMA() == 100.0
169+
170+
171+
# Test case for updating latency
172+
def test_record_latency_updates_ewma():
173+
peer_data = PeerData()
174+
peer_data.record_latency(100.0) # first measurement
175+
first = peer_data.latency_EWMA()
176+
177+
peer_data.record_latency(50.0) # second measurement
178+
second = peer_data.latency_EWMA()
179+
180+
assert second < first # EWMA should have smoothed downward
181+
assert second > 50.0 # Not as low as the new latency
182+
assert second != first
183+
184+
185+
def test_clear_metrics():
186+
peer_data = PeerData()
187+
peer_data.record_latency(200.0)
188+
assert peer_data.latency_EWMA() == 200.0
189+
190+
peer_data.clear_metrics()
191+
assert peer_data.latency_EWMA() == 0

0 commit comments

Comments
 (0)