Files
@ 83dc5e1e183e
Branch filter:
Location: Morevna/src/tests/test_hashtree.py - annotation
83dc5e1e183e
674 B
text/x-python
regularly flushing the hash tree to the disk during a data transfer
bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa 6a0ab4fe9f5e 5c80ca07f00c bacd3b2d37aa 6a0ab4fe9f5e 6a0ab4fe9f5e bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa 5c80ca07f00c 6a0ab4fe9f5e 5c80ca07f00c 6a0ab4fe9f5e 5c80ca07f00c bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa bacd3b2d37aa 5c80ca07f00c 6a0ab4fe9f5e 6a0ab4fe9f5e 5c80ca07f00c | 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)
|