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));
}
}
Aggregations