@Test
  public void hashimotoLight() throws Exception {
    final RLPInput input =
        new BytesValueRLPInput(
            Bytes.wrap(Resources.toByteArray(EthHashTest.class.getResource("block_300005.blocks"))),
            false);
    input.enterList();
    final BlockHeader header = BlockHeader.readFrom(input, new MainnetBlockHeaderFunctions());
    final long blockNumber = header.getNumber();
    final EpochCalculator epochCalculator = new EpochCalculator.DefaultEpochCalculator();
    final long epoch = epochCalculator.cacheEpoch(blockNumber);
    final long datasetSize = EthHash.datasetSize(epoch);
    final long cacheSize = EthHash.cacheSize(epoch);
    assertThat(datasetSize).isEqualTo(1157627776);
    assertThat(cacheSize).isEqualTo(18087488);
    final int[] cache = EthHash.mkCache((int) cacheSize, blockNumber, epochCalculator);
    PoWSolution solution =
        EthHash.hashimotoLight(datasetSize, cache, EthHash.hashHeader(header), header.getNonce());
    assertThat(solution.getMixHash()).isEqualTo(header.getMixHash());
  }
Verifies hashing against block 300005 of the public Ethereum chain.

@throws Exception On Failure
ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/EthHashTest.java