Search in sources :

Example 6 with ReportingParseRunner

use of org.parboiled.parserunners.ReportingParseRunner in project ddf by codice.

the class KeywordTextParserTest method testPositives.

@Test
public void testPositives() {
    // TODO add more expressions to test
    List<String> inputs = new ArrayList<>();
    inputs.add("נּ€");
    inputs.add("A AND B");
    inputs.add("A AND   B AND C");
    inputs.add("A OR B");
    inputs.add("(A OR B)  ");
    inputs.add("  (\"B\")");
    inputs.add("(  B)");
    inputs.add("(\"A OR B  \"  )");
    inputs.add("A NOT B");
    inputs.add("A B");
    inputs.add("AND");
    inputs.add("\"AND\"");
    inputs.add("test tester3");
    inputs.add("A B OR C");
    inputs.add("A \"B\" OR C");
    inputs.add("A \"test\" OR C");
    inputs.add("A B OR \"C\"");
    inputs.add("$%'^&_+` ''''veryInterest*ingKeyword!@#$%^&_+-=`~1234567890[]{}\\|?/><,.:; OR %^&_+-=*`~123");
    inputs.add("test TeSt1 OR another3test");
    inputs.add("A B C D E A N D N O T O R F G H I \"J 1 2 3 4 5 6\" 2 * 7 8 9 # $ % ^ ! } [ ` ; ' <");
    inputs.add("(\"A14356377856nyin8o789l;;l453 234l56;23$$#%#$@^#@&&!\" B) OR C");
    inputs.add("(A AND B) OR C");
    inputs.add("(A AND B) NOT ((C OR D) AND (B NOT A)) OR E");
    inputs.add("A AND B AND C AND D OR E NOT F");
    inputs.add("A B AND C D OR E NOT F");
    inputs.add("(A B AND C D) OR E NOT F");
    inputs.add("A NOT A");
    inputs.add("A (NOT C) D");
    inputs.add("(((Apple) AND (((Orange) OR Banana))))");
    inputs.add("A  B");
    inputs.add("(\"A14356377856nyin8o789l;;l453      234l56;23$$#%#$@^#@&&!\" B) OR C");
    inputs.add("( A )");
    inputs.add(" AND ");
    inputs.add("    keyword2       ");
    inputs.add(" AND");
    inputs.add("AND ");
    inputs.add(" AND ");
    inputs.add("\" AND \"");
    inputs.add("(\"Keyword \")");
    inputs.add("\" Keyword\"");
    inputs.add("( \"Keyword\")");
    inputs.add("A ( OR ) B");
    inputs.add("((((((((((((\"stuff   stuff2\"))))))))))) OR C)");
    inputs.add("(\"A14356377856nyin8o789l;;l453      234l56;23$$#%#$@^#@&&!\" B) OR C");
    for (String input : inputs) {
        KeywordTextParser parser = Parboiled.createParser(KeywordTextParser.class);
        ParsingResult<?> result = new ReportingParseRunner(parser.inputPhrase()).run(input);
        LOGGER.debug("input = {}\t\t=====>result matched = {}", input, result.matched);
        assertEquals("Failed on input [" + input + "]. Parse Error [" + getErrorOutput(result) + "]", 0, result.parseErrors.size());
        assertEquals("Failed to parse [" + input + "] properly.", input, ParseTreeUtils.getNodeText(result.parseTreeRoot, result.inputBuffer));
    }
}
Also used : ArrayList(java.util.ArrayList) KeywordTextParser(org.codice.ddf.opensearch.endpoint.KeywordTextParser) ReportingParseRunner(org.parboiled.parserunners.ReportingParseRunner) Test(org.junit.Test)

Aggregations

ArrayList (java.util.ArrayList)6 Test (org.junit.Test)6 ReportingParseRunner (org.parboiled.parserunners.ReportingParseRunner)6 KeywordTextParser (org.codice.ddf.endpoints.KeywordTextParser)3 KeywordTextParser (org.codice.ddf.opensearch.endpoint.KeywordTextParser)3