test_class.file: nvadaemon-azure/src/test/java/com/microsoft/azure/practices/nvadaemon/collect/IteratorsTest.java
test_class.identifier: IteratorsTest
test_case.body: @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());
      }
test_case.class_method_signature: IteratorsTest.test_iterator_remove()
test_case.full_signature: @Test void test_iterator_remove()
test_case.identifier: test_iterator_remove
test_case.invocations: add add add peekingIterator iterator currentPeekingIterator assertThrows remove next remove current assertEquals next assertEquals peek assertThrows remove
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void test_iterator_remove()
focal_class.file: nvadaemon-azure/src/main/java/com/microsoft/azure/practices/nvadaemon/collect/Iterators.java
focal_class.identifier: Iterators
focal_class.class_method_signature: Iterators.Iterators()
focal_class.full_signature: private  Iterators()
focal_class.identifier: Iterators
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Iterators()
focal_class.class_method_signature: Iterators.currentPeekingIterator(PeekingIterator<? extends T> iterator)
focal_class.full_signature: public static CurrentPeekingIterator<T> currentPeekingIterator(PeekingIterator<? extends T> iterator)
focal_class.identifier: currentPeekingIterator
focal_class.modifiers: public static
focal_class.parameters: (PeekingIterator<? extends T> iterator)
focal_class.return: CurrentPeekingIterator<T>
focal_class.signature: CurrentPeekingIterator<T> currentPeekingIterator(PeekingIterator<? extends T> iterator)
focal_method.body: public static <T> CurrentPeekingIterator<T> currentPeekingIterator(PeekingIterator<? extends T> iterator) {
          return new Iterators.CurrentPeekingIteratorImpl(iterator);
      }
focal_method.class_method_signature: Iterators.currentPeekingIterator(PeekingIterator<? extends T> iterator)
focal_method.full_signature: public static CurrentPeekingIterator<T> currentPeekingIterator(PeekingIterator<? extends T> iterator)
focal_method.identifier: currentPeekingIterator
focal_method.modifiers: public static
focal_method.parameters: (PeekingIterator<? extends T> iterator)
focal_method.return: CurrentPeekingIterator<T>
focal_method.signature: CurrentPeekingIterator<T> currentPeekingIterator(PeekingIterator<? extends T> iterator)