// Path: src/main/java/com/github/jankroken/commandline/util/Constants.java
// public static final String[] EMPTY_STRING_ARRAY = new String[]{};


import org.junit.jupiter.api.Test;
import java.util.NoSuchElementException;
import static com.github.jankroken.commandline.util.Constants.EMPTY_STRING_ARRAY;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.*;
        assertTrue(ai.hasNext());
        assertEquals(ai.next(), "hello");
        assertTrue(ai.hasNext());
        assertEquals(ai.next(), "world");
        assertFalse(ai.hasNext());
    }

    @Test
    public void testTwoElementsNoReadAhead() {
        var elements = new String[]{"hello", "world"};
        var ai = createIterator(elements);
        assertEquals(ai.next(), "hello");
        assertEquals(ai.next(), "world");
        assertFalse(ai.hasNext());
    }

    @Test
    public void testTwoElementsPeek() {
        var elements = new String[]{"hello", "world"};
        var ai = createIterator(elements);
        assertEquals(ai.peek(), "hello");
        assertEquals(ai.next(), "hello");
        assertEquals(ai.peek(), "world");
        assertEquals(ai.next(), "world");
        assertFalse(ai.hasNext());
    }


    @Test
    public void testReadPastEmpty() {
// Path: src/main/java/com/github/jankroken/commandline/util/Constants.java
// public static final String[] EMPTY_STRING_ARRAY = new String[]{};


// Path: src/test/java/com/github/jankroken/commandline/util/PeekIteratorTest.java
import org.junit.jupiter.api.Test;
import java.util.NoSuchElementException;
import static com.github.jankroken.commandline.util.Constants.EMPTY_STRING_ARRAY;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.*;

        assertTrue(ai.hasNext());
        assertEquals(ai.next(), "hello");
        assertTrue(ai.hasNext());
        assertEquals(ai.next(), "world");
        assertFalse(ai.hasNext());
    }

    @Test
    public void testTwoElementsNoReadAhead() {
        var elements = new String[]{"hello", "world"};
        var ai = createIterator(elements);
        assertEquals(ai.next(), "hello");
        assertEquals(ai.next(), "world");
        assertFalse(ai.hasNext());
    }

    @Test
    public void testTwoElementsPeek() {
        var elements = new String[]{"hello", "world"};
        var ai = createIterator(elements);
        assertEquals(ai.peek(), "hello");
        assertEquals(ai.next(), "hello");
        assertEquals(ai.peek(), "world");
        assertEquals(ai.next(), "world");
        assertFalse(ai.hasNext());
    }


    @Test
    public void testReadPastEmpty() {
        var ai = createIterator(EMPTY_STRING_ARRAY);