Files @ e6f9a4843e49
Branch filter:

Location: Morevna/src/tests/test_hashtree.py

Laman
configurable log path
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)