Skip to content

Commit af9b88a

Browse files
committed
feat: test for two logs encoding
1 parent ef2608d commit af9b88a

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

tests/modules/csm/test_log.py

+38
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,41 @@ def test_log_encode(log: FramePerfLog):
4747

4848
assert decoded["threshold"] == log.threshold
4949
assert decoded["frame"] == list(log.frame)
50+
51+
52+
def test_logs_encode():
53+
log_0 = FramePerfLog(ReferenceBlockStampFactory.build(), (EpochNumber(100), EpochNumber(500)))
54+
log_0.operators[NodeOperatorId(42)].validators["41337"].perf = AttestationsAccumulator(220, 119)
55+
log_0.operators[NodeOperatorId(42)].distributed = 17
56+
log_0.operators[NodeOperatorId(0)].distributed = 0
57+
58+
log_1 = FramePerfLog(ReferenceBlockStampFactory.build(), (EpochNumber(500), EpochNumber(900)))
59+
log_1.operators[NodeOperatorId(5)].validators["1234"].perf = AttestationsAccumulator(400, 399)
60+
log_1.operators[NodeOperatorId(5)].distributed = 40
61+
log_1.operators[NodeOperatorId(18)].distributed = 0
62+
63+
logs = [log_0, log_1]
64+
65+
encoded = FramePerfLog.encode(logs)
66+
67+
decoded = json.loads(encoded)
68+
69+
assert len(decoded) == 2
70+
71+
assert decoded[0]["operators"]["42"]["validators"]["41337"]["perf"]["assigned"] == 220
72+
assert decoded[0]["operators"]["42"]["validators"]["41337"]["perf"]["included"] == 119
73+
assert decoded[0]["operators"]["42"]["distributed"] == 17
74+
assert decoded[0]["operators"]["0"]["distributed"] == 0
75+
76+
assert decoded[1]["operators"]["5"]["validators"]["1234"]["perf"]["assigned"] == 400
77+
assert decoded[1]["operators"]["5"]["validators"]["1234"]["perf"]["included"] == 399
78+
assert decoded[1]["operators"]["5"]["distributed"] == 40
79+
assert decoded[1]["operators"]["18"]["distributed"] == 0
80+
81+
for i, log in enumerate(logs):
82+
assert decoded[i]["blockstamp"]["block_hash"] == log.blockstamp.block_hash
83+
assert decoded[i]["blockstamp"]["ref_slot"] == log.blockstamp.ref_slot
84+
85+
assert decoded[i]["threshold"] == log.threshold
86+
assert decoded[i]["frame"] == list(log.frame)
87+
assert decoded[i]["distributable"] == log.distributable

0 commit comments

Comments
 (0)