Files @ 5c80ca07f00c
Branch filter:

Location: Morevna/src/tests/test_hashtree.py

Laman
reformatted whitespace with more respect for PEP-8
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)