From 4e533270793e8dc7b4c3e3120eb27129d7d74b55 Mon Sep 17 00:00:00 2001 From: lla-dane Date: Wed, 18 Jun 2025 17:05:38 +0530 Subject: [PATCH] Metrics: added tests --- libp2p/peer/peerdata.py | 2 +- tests/core/peer/test_peerdata.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/libp2p/peer/peerdata.py b/libp2p/peer/peerdata.py index 725ca5a3..bf45ca23 100644 --- a/libp2p/peer/peerdata.py +++ b/libp2p/peer/peerdata.py @@ -186,7 +186,7 @@ class PeerData(IPeerData): if s > 1 or s < 0: s = 0.1 - if self.latmap is None: + if self.latmap == 0: self.latmap = new_latency else: prev = self.latmap diff --git a/tests/core/peer/test_peerdata.py b/tests/core/peer/test_peerdata.py index 500e19d4..f2d76643 100644 --- a/tests/core/peer/test_peerdata.py +++ b/tests/core/peer/test_peerdata.py @@ -157,3 +157,35 @@ def test_get_privkey_not_found(): peer_data = PeerData() with pytest.raises(PeerDataError): peer_data.get_privkey() + + +# Test case for recording latency for the first time +def test_record_latency_initial(): + peer_data = PeerData() + assert peer_data.latency_EWMA() == 0 + + peer_data.record_latency(100.0) + assert peer_data.latency_EWMA() == 100.0 + + +# Test case for updating latency +def test_record_latency_updates_ewma(): + peer_data = PeerData() + peer_data.record_latency(100.0) # first measurement + first = peer_data.latency_EWMA() + + peer_data.record_latency(50.0) # second measurement + second = peer_data.latency_EWMA() + + assert second < first # EWMA should have smoothed downward + assert second > 50.0 # Not as low as the new latency + assert second != first + + +def test_clear_metrics(): + peer_data = PeerData() + peer_data.record_latency(200.0) + assert peer_data.latency_EWMA() == 200.0 + + peer_data.clear_metrics() + assert peer_data.latency_EWMA() == 0