### Question:
IbftBlockHashing { public static Hash calculateDataHashForCommittedSeal( final BlockHeader header, final IbftExtraData ibftExtraData) { return Hash.hash(serializeHeader(header, ibftExtraData::encodeWithoutCommitSeals)); }  static Hash calculateDataHashForCommittedSeal(
      final BlockHeader header, final IbftExtraData ibftExtraData); static Hash calculateDataHashForCommittedSeal(final BlockHeader header); static Hash calculateHashOfIbftBlockOnChain(final BlockHeader header); static List<Address> recoverCommitterAddresses(
      final BlockHeader header, final IbftExtraData ibftExtraData);  }### Answer:
@Test public void testCalculateDataHashForCommittedSeal() { Hash dataHahsForCommittedSeal = IbftBlockHashing.calculateDataHashForCommittedSeal( HEADER_TO_BE_HASHED, IbftExtraData.decode(HEADER_TO_BE_HASHED)); BlockHeaderBuilder builder = setHeaderFieldsExceptForExtraData(); List<Signature> commitSeals = COMMITTERS_NODE_KEYS.stream() .map(nodeKey -> nodeKey.sign(dataHahsForCommittedSeal)) .collect(Collectors.toList()); IbftExtraData extraDataWithCommitSeals = new IbftExtraData(VANITY_DATA, commitSeals, VOTE, ROUND, VALIDATORS); builder.extraData(extraDataWithCommitSeals.encode()); BlockHeader actualHeader = builder.buildBlockHeader(); assertThat(actualHeader).isEqualTo(HEADER_TO_BE_HASHED); }