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)