@Test
void test_iterator_remove() {

    String one = "one";
    String two = "two";
    String three = "three";
    List<String> strings = new ArrayList<>();
    strings.add(one);
    strings.add(two);
    strings.add(three);
    PeekingIterator<String> peekingIterator
        = com.google.common.collect.Iterators.peekingIterator(strings.iterator());
    CurrentPeekingIterator<String> currentPeekingIterator =
        Iterators.currentPeekingIterator(peekingIterator);
    Assertions.assertThrows(IllegalStateException.class,
        () -> currentPeekingIterator.remove());
    currentPeekingIterator.next();
    currentPeekingIterator.remove();
    String current = currentPeekingIterator.current();
    Assertions.assertEquals(null, current);
    String next = currentPeekingIterator.next();
    Assertions.assertEquals(two, next);
    String peek = currentPeekingIterator.peek();
    Assertions.assertThrows(IllegalStateException.class,
        () -> currentPeekingIterator.remove());
}