diff --git a/src/tests/test_hashtree.py b/src/tests/test_hashtree.py new file mode 100644 --- /dev/null +++ b/src/tests/test_hashtree.py @@ -0,0 +1,31 @@ +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)