| Index: modules/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymMapFilter.java |
| =================================================================== |
| --- modules/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymMapFilter.java (revision 1238659) |
| +++ modules/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymMapFilter.java (working copy) |
| @@ -606,6 +606,31 @@ |
| new String[] { "zoo", "zoo", "zoo", "zoo", "zoo", "$", "zoo", "zoo", "zoo", "zoo" }, |
| new int[] { 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 }); |
| } |
| + |
| + public void testOutputHangsOffEnd() throws Exception { |
| + b = new SynonymMap.Builder(true); |
| + final boolean keepOrig = false; |
| + // b hangs off the end (no input token under it): |
| + add("a", "a b", keepOrig); |
| + final SynonymMap map = b.build(); |
| + tokensIn = new MockTokenizer(new StringReader("a"), |
| + MockTokenizer.WHITESPACE, |
| + true); |
| + tokensIn.reset(); |
| + assertTrue(tokensIn.incrementToken()); |
| + assertFalse(tokensIn.incrementToken()); |
| + tokensIn.end(); |
| + tokensIn.close(); |
| + |
| + tokensOut = new SynonymFilter(tokensIn, |
| + b.build(), |
| + true); |
| + termAtt = tokensOut.addAttribute(CharTermAttribute.class); |
| + posIncrAtt = tokensOut.addAttribute(PositionIncrementAttribute.class); |
| + offsetAtt = tokensOut.addAttribute(OffsetAttribute.class); |
| + |
| + verify("a", "a b:7"); |
| + } |
| |
| public void testIncludeOrig() throws Exception { |
| b = new SynonymMap.Builder(true); |