TokenPattern { public List<Pattern> getParsedPattern() { return this.parsedPattern; } TokenPattern(String regexp, Pattern separatorPattern); String getRegExp(); List<Pattern> getParsedPattern(); int getTokenCount(); List<Integer> getIndexesToTest(); List<TokenPatternMatchSequence> match(TokenSequence tokenSequence); String getName(); void setName(String name); String getGroupName(); void setGroupName(String groupName); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object obj); boolean isSeparatorClass(int index);  }
@Test public void testGetParsedPattern() throws TalismaneException { final String separators = "[\\s\\p{Punct}]"; Pattern separatorPattern = Pattern.compile(separators, Pattern.UNICODE_CHARACTER_CLASS); List<String> testPatterns = new ArrayList<String>(); testPatterns.add(".+'.+"); testPatterns.add(".+-t-elle"); testPatterns.add(".+\\..+"); testPatterns.add("\\d+ \\d+"); testPatterns.add("lors (de|du|des|d)"); testPatterns.add("([^cdjlmnst]|..+)'.+"); testPatterns.add(".+-t{-}elle"); int i = 0; for (String testPattern : testPatterns) { LOG.debug("Test Pattern = " + testPatterns.get(i)); TokenPattern tokeniserPattern = new TokenPattern(testPattern, separatorPattern); List<Pattern> parsedPattern = tokeniserPattern.getParsedPattern(); LOG.debug("Parsed Pattern = " + parsedPattern); if (i == 0) { assertEquals(".+", parsedPattern.get(0).pattern()); assertEquals("'", parsedPattern.get(1).pattern()); assertEquals(".+", parsedPattern.get(2).pattern()); } else if (i == 1) { assertEquals(".+", parsedPattern.get(0).pattern()); assertEquals("-", parsedPattern.get(1).pattern()); assertEquals("t", parsedPattern.get(2).pattern()); assertEquals("-", parsedPattern.get(3).pattern()); assertEquals("elle", parsedPattern.get(4).pattern()); assertEquals(4, tokeniserPattern.getIndexesToTest().size()); assertEquals(1, tokeniserPattern.getIndexesToTest().get(0).intValue()); assertEquals(2, tokeniserPattern.getIndexesToTest().get(1).intValue()); assertEquals(3, tokeniserPattern.getIndexesToTest().get(2).intValue()); assertEquals(4, tokeniserPattern.getIndexesToTest().get(3).intValue()); } else if (i == 2) { assertEquals(".+", parsedPattern.get(0).pattern()); assertEquals("\\.", parsedPattern.get(1).pattern()); assertEquals(".+", parsedPattern.get(2).pattern()); } else if (i == 3) { assertEquals("\\d+", parsedPattern.get(0).pattern()); assertEquals(" ", parsedPattern.get(1).pattern()); assertEquals("\\d+", parsedPattern.get(2).pattern()); } else if (i == 4) { assertEquals("[lL]ors", parsedPattern.get(0).pattern()); assertEquals(" ", parsedPattern.get(1).pattern()); assertEquals("(de|du|des|d)", parsedPattern.get(2).pattern()); } else if (i == 5) { assertEquals("([^cdjlmnst]|..+)", parsedPattern.get(0).pattern()); assertEquals("'", parsedPattern.get(1).pattern()); assertEquals(".+", parsedPattern.get(2).pattern()); } else if (i == 6) { assertEquals(".+", parsedPattern.get(0).pattern()); assertEquals("-", parsedPattern.get(1).pattern()); assertEquals("t", parsedPattern.get(2).pattern()); assertEquals("-", parsedPattern.get(3).pattern()); assertEquals("elle", parsedPattern.get(4).pattern()); assertEquals(3, tokeniserPattern.getIndexesToTest().size()); assertEquals(1, tokeniserPattern.getIndexesToTest().get(0).intValue()); assertEquals(2, tokeniserPattern.getIndexesToTest().get(1).intValue()); assertEquals(4, tokeniserPattern.getIndexesToTest().get(2).intValue()); } i++; } }