@Test
public void testCalculateMerkleTreeInPlaceHash() throws NoSuchMethodException, InvocationTargetException,
		IllegalAccessException {

	OpBlockchainRules bRules = blc.getRules();
	Class<OpBlockchainRules> clazz = OpBlockchainRules.class;
	Method calMerTreeM = clazz.getDeclaredMethod("calculateMerkleTreeInPlaceHash", String.class, List.class);
	calMerTreeM.setAccessible(true);
	List<byte[]> inChain = new ArrayList<>();
	for (int i = 0; i < 9; i++) {
		byte[] inData = new byte[200];
		new Random().nextBytes(inData);
		inChain.add(inData);
	}
	//have to get same sequence for the same bytes sequence
	String rootHash = (String) calMerTreeM.invoke(bRules, SecUtils.HASH_SHA256, inChain);
	String rootHashDuplicate = (String) calMerTreeM.invoke(bRules, SecUtils.HASH_SHA256, inChain);
	assertEquals(rootHash, rootHashDuplicate);
	//have to get different sequence for the different bytes sequence
	inChain.get(8)[198] = (byte) (inChain.get(8)[198] >> 1);
	String rootHash2 = (String) calMerTreeM.invoke(bRules, SecUtils.HASH_SHA256, inChain);
	assertNotEquals(rootHash, rootHash2);
}