public static <S, T> RemoteIterator<T> mappingRemoteIterator(
      RemoteIterator<S> iterator,
      FunctionRaisingIOE<? super S, T> mapper) {
    return new MappingRemoteIterator<>(iterator, mapper);
  }
@Test
  public void testMapping() throws Throwable {
    CountdownRemoteIterator countdown = new CountdownRemoteIterator(100);
    RemoteIterator<Integer> it = mappingRemoteIterator(
        countdown,
        i -> i);
    verifyInvoked(it, 100, c -> counter++);
    assertCounterValue(100);
    extractStatistics(it);
    assertStringValueContains(it, "CountdownRemoteIterator");
    close(it);
    countdown.assertCloseCount(1);
  }