// Path: src/test/java/com/github/liblevenshtein/assertion/StateAssertions.java
// public static StateAssertions assertThat(final State actual) {
//   return new StateAssertions(actual);
// }


import org.testng.annotations.Test;
import static com.github.liblevenshtein.assertion.StateAssertions.assertThat;
        .doesNotHaveNext();
  }

  @Test
  public void testInsertOnEmptyStateIterator() {
    final State state = new State();
    final Position position = new Position(0, 0);

    assertThat(state).iterator()
      .doesNotHaveNext()
      .insert(position)
      .hasNext()
      .peeks(position)
      .hasNext(position)
      .doesNotHaveNext();

    assertThat(state).iterator()
      .hasNext()
      .peeks(position)
      .hasNext(position)
      .doesNotHaveNext();

    assertThat(state).iterator()
      .copy()
        .hasNext()
        .peeks(position)
        .hasNext(position)
        .doesNotHaveNext();
  }

// Path: src/test/java/com/github/liblevenshtein/assertion/StateAssertions.java
// public static StateAssertions assertThat(final State actual) {
//   return new StateAssertions(actual);
// }


// Path: src/test/java/com/github/liblevenshtein/transducer/StateIteratorTest.java
import org.testng.annotations.Test;
import static com.github.liblevenshtein.assertion.StateAssertions.assertThat;

        .doesNotHaveNext();
  }

  @Test
  public void testInsertOnEmptyStateIterator() {
    final State state = new State();
    final Position position = new Position(0, 0);

    assertThat(state).iterator()
      .doesNotHaveNext()
      .insert(position)
      .hasNext()
      .peeks(position)
      .hasNext(position)
      .doesNotHaveNext();

    assertThat(state).iterator()
      .hasNext()
      .peeks(position)
      .hasNext(position)
      .doesNotHaveNext();

    assertThat(state).iterator()
      .copy()
        .hasNext()
        .peeks(position)
        .hasNext(position)
        .doesNotHaveNext();
  }

  @Test