Files @ 870c5c6c334f
Branch filter:

Location: Morevna/src/tests/test_hashtree.py

Laman
reacquiring old locks
import random
from unittest import TestCase

from hashtree import HashTree
from . import RedirectedOutput


random.seed(17)


def build_tree(leaves):
	tree = HashTree(len(leaves))
	for l in leaves:
		tree.insert_leaf(l)
	tree.build_tree()
	return tree


class TestMorevna(RedirectedOutput, TestCase):
	def test_batch_update(self):
		leaves = [b"a" for i in range(8)]
		t1 = build_tree(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 = build_tree(leaves)
			t1.batch_update((k + t1.leaf_start, leaves[k]) for k in keys[:i + 1])
			self.assertEqual(t1.store, t2.store)