### Question:
BodyValidation { public static Hash transactionsRoot(final List<Transaction> transactions) { final MerklePatriciaTrie<Bytes, Bytes> trie = trie(); for (int i = 0; i < transactions.size(); ++i) { trie.put(indexKey(i), RLP.encode(transactions.get(i)::writeTo)); } return Hash.wrap(trie.getRootHash()); } private  BodyValidation(); static Hash transactionsRoot(final List<Transaction> transactions); static Hash receiptsRoot(final List<TransactionReceipt> receipts); static Hash ommersHash(final List<BlockHeader> ommers); static LogsBloomFilter logsBloom(final List<TransactionReceipt> receipts);  }### Answer:
@Test public void calculateTransactionsRoot() throws IOException { for (final int block : Arrays.asList(300006, 4400002)) { final BlockHeader header = ValidationTestUtils.readHeader(block); final BlockBody body = ValidationTestUtils.readBody(block); final Bytes32 transactionRoot = BodyValidation.transactionsRoot(body.getTransactions()); Assertions.assertThat(header.getTransactionsRoot()).isEqualTo(transactionRoot); } }