import random
from unittest import TestCase
from hashtree import HashTree
from . import RedirectedOutput
random.seed(17)
def buildTree(leaves):
tree=HashTree(len(leaves))
for l in leaves:
tree.insertLeaf(l)
tree.buildTree()
return tree
class TestMorevna(RedirectedOutput,TestCase):
def test_batchUpdate(self):
leaves=[b"a" for i in range(8)]
t1=buildTree(leaves)
keys=list(range(8))
for i in range(8):
random.shuffle(keys)
for k in keys[:i+1]:
leaves[k]=bytes([random.randrange(256)])
t2=buildTree(leaves)
t1.batchUpdate((k+t1.leafStart,leaves[k]) for k in keys[:i+1])
self.assertEqual(t1.store,t2.store)