// Path: src/test/java/com/nebhale/jsonpath/testutils/AssertUtils.java
// public static void assertNoProblems(ProblemContainer problemContainer) {
//     assertProblemCount(problemContainer, 0);
// }
// 
// Path: src/test/java/com/nebhale/jsonpath/testutils/AssertUtils.java
// public static void assertProblemCount(ProblemContainer problemContainer, int count) {
//     assertEquals(problemContainer.getProblems().toString(), count, problemContainer.getProblems().size());
// }
// 
// Path: src/test/java/com/nebhale/jsonpath/testutils/JsonUtils.java
// public static final JsonNode NODE;


import static com.nebhale.jsonpath.testutils.AssertUtils.assertNoProblems;
import static com.nebhale.jsonpath.testutils.AssertUtils.assertProblemCount;
import static com.nebhale.jsonpath.testutils.JsonUtils.NODE;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
        expected.add(nodeStore.get("book"));
        expected.add(nodeStore.get("bicycle"));

        ParserResult result = this.parser.parse("$.store[*]");

        assertNoProblems(result);
        assertEquals(expected, result.getPathComponent().get(NODE));
    }

    @Test
    public void chain() {
        assertEquals(NODE.get("store").get("book").get(0).get("title"), this.parser.parse("$.store.book[0].title").getPathComponent().get(NODE));
        assertEquals(NODE.get("store").get("book").get(0).get("title"),
            this.parser.parse("$['store']['book'][0]['title']").getPathComponent().get(NODE));
    }

    @Test(expected = IllegalStateException.class)
    public void lexProblems() {
        ParserResult result = this.parser.parse("Q");
        assertProblemCount(result, 1);
        result.getPathComponent();
    }

    @Test(expected = IllegalStateException.class)
    public void parserProblems() {
        ParserResult result = this.parser.parse("$$");
        assertProblemCount(result, 1);
        result.getPathComponent();
    }

// Path: src/test/java/com/nebhale/jsonpath/testutils/AssertUtils.java
// public static void assertNoProblems(ProblemContainer problemContainer) {
//     assertProblemCount(problemContainer, 0);
// }
// 
// Path: src/test/java/com/nebhale/jsonpath/testutils/AssertUtils.java
// public static void assertProblemCount(ProblemContainer problemContainer, int count) {
//     assertEquals(problemContainer.getProblems().toString(), count, problemContainer.getProblems().size());
// }
// 
// Path: src/test/java/com/nebhale/jsonpath/testutils/JsonUtils.java
// public static final JsonNode NODE;


// Path: src/test/java/com/nebhale/jsonpath/internal/parser/RecoveringPathParserTest.java
import static com.nebhale.jsonpath.testutils.AssertUtils.assertNoProblems;
import static com.nebhale.jsonpath.testutils.AssertUtils.assertProblemCount;
import static com.nebhale.jsonpath.testutils.JsonUtils.NODE;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;

        expected.add(nodeStore.get("book"));
        expected.add(nodeStore.get("bicycle"));

        ParserResult result = this.parser.parse("$.store[*]");

        assertNoProblems(result);
        assertEquals(expected, result.getPathComponent().get(NODE));
    }

    @Test
    public void chain() {
        assertEquals(NODE.get("store").get("book").get(0).get("title"), this.parser.parse("$.store.book[0].title").getPathComponent().get(NODE));
        assertEquals(NODE.get("store").get("book").get(0).get("title"),
            this.parser.parse("$['store']['book'][0]['title']").getPathComponent().get(NODE));
    }

    @Test(expected = IllegalStateException.class)
    public void lexProblems() {
        ParserResult result = this.parser.parse("Q");
        assertProblemCount(result, 1);
        result.getPathComponent();
    }

    @Test(expected = IllegalStateException.class)
    public void parserProblems() {
        ParserResult result = this.parser.parse("$$");
        assertProblemCount(result, 1);
        result.getPathComponent();
    }

    @Test