@Override
  public int hashCode() {
    return iterator.hasNext() ? Objects.hashCode(iterator.next()) : -1789023489;
  }
@Test
  public void testEqualsAndHashCode() {
    Iterable<String> iterA =
        new LazyCachingIteratorToIterable<>(PrefetchableIterators.fromArray("A", "B", "C"));
    Iterable<String> iterB =
        new LazyCachingIteratorToIterable<>(PrefetchableIterators.fromArray("A", "B", "C"));
    Iterable<String> iterC = new LazyCachingIteratorToIterable<>(PrefetchableIterators.fromArray());
    Iterable<String> iterD = new LazyCachingIteratorToIterable<>(PrefetchableIterators.fromArray());
    assertEquals(iterA, iterB);
    assertEquals(iterC, iterD);
    assertNotEquals(iterA, iterC);
    assertEquals(iterA.hashCode(), iterB.hashCode());
    assertEquals(iterC.hashCode(), iterD.hashCode());
  }