def test_trim_node3(self): hash1 = UInt256(data=binascii.unhexlify(b'aa' * 32)) hash2 = UInt256(data=binascii.unhexlify(b'bb' * 32)) hashes = [hash1, hash2] m = MerkleTree(hashes) depth = 1 flags = bytearray.fromhex('0000') m._TrimNode(m.Root, 1, depth, flags) self.assertNotEqual(None, m.Root.LeftChild) self.assertNotEqual(None, m.Root.RightChild)
def test_trim_node1(self): hash1 = UInt256(data=binascii.unhexlify(b'aa' * 32)) hash2 = UInt256(data=binascii.unhexlify(b'bb' * 32)) hash3 = UInt256(data=binascii.unhexlify(b'cc' * 32)) hashes = [hash1, hash2, hash3] m = MerkleTree(hashes) depth = 2 flags = bytearray.fromhex( '11110000' ) # 1 byte left node , 1 byte right node 00=delete, non-00 is keep m._TrimNode(m.Root, 1, depth, flags) self.assertEqual(None, m.Root.LeftChild) self.assertEqual(None, m.Root.RightChild)
def test_trim_node2(self): hash1 = UInt256(data=binascii.unhexlify(b'aa' * 32)) hash2 = UInt256(data=binascii.unhexlify(b'bb' * 32)) hash3 = UInt256(data=binascii.unhexlify(b'cc' * 32)) hash4 = UInt256(data=binascii.unhexlify(b'dd' * 32)) hash5 = UInt256(data=binascii.unhexlify(b'ee' * 32)) hash6 = UInt256(data=binascii.unhexlify(b'11' * 32)) hash7 = UInt256(data=binascii.unhexlify(b'22' * 32)) hash8 = UInt256(data=binascii.unhexlify(b'33' * 32)) hash9 = UInt256(data=binascii.unhexlify(b'44' * 32)) hashes = [ hash1, hash2, hash3, hash4, hash5, hash6, hash7, hash8, hash9 ] m = MerkleTree(hashes) depth = 3 flags = bytearray.fromhex('111100000000') m._TrimNode(m.Root, 1, depth, flags) self.assertEqual(None, m.Root.LeftChild) self.assertEqual(None, m.Root.RightChild)