Youngjoon Lee 113d3bb6d7
wip
2025-02-27 15:52:02 +09:00

27 lines
960 B
Python

from unittest import TestCase
from cryptarchia.cryptarchia import Coin, Follower
from cryptarchia.sync.range_sync import range_sync
from cryptarchia.test_common import mk_block, mk_config, mk_genesis_state
class TestRangeSync(TestCase):
def test_no_fork(self):
# b0 - b1 - b2
coin = Coin(sk=0, value=10)
config = mk_config([coin])
genesis = mk_genesis_state([coin])
follower = Follower(genesis, config)
b0, coin = mk_block(genesis.block, 1, coin), coin.evolve()
b1, coin = mk_block(b0, 2, coin), coin.evolve()
b2, coin = mk_block(b1, 3, coin), coin.evolve()
for b in [b0, b1, b2]:
follower.on_block(b)
assert follower.tip() == b2
assert follower.forks == []
new_follower = Follower(genesis, config)
range_sync(new_follower, [follower], genesis.block.slot)
assert new_follower.tip() == b2
assert new_follower.forks == []