You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by eh...@apache.org on 2003/09/21 15:45:33 UTC

cvs commit: jakarta-lucene/src/test/org/apache/lucene/search TestPositionIncrement.java

ehatcher    2003/09/21 06:45:33

  Modified:    src/test/org/apache/lucene/search TestPositionIncrement.java
  Log:
  add basic assertion of position increments test
  
  Revision  Changes    Path
  1.3       +55 -41    jakarta-lucene/src/test/org/apache/lucene/search/TestPositionIncrement.java
  
  Index: TestPositionIncrement.java
  ===================================================================
  RCS file: /home/cvs/jakarta-lucene/src/test/org/apache/lucene/search/TestPositionIncrement.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestPositionIncrement.java	19 Oct 2002 17:02:43 -0000	1.2
  +++ TestPositionIncrement.java	21 Sep 2003 13:45:33 -0000	1.3
  @@ -63,44 +63,43 @@
   import org.apache.lucene.analysis.Analyzer;
   import org.apache.lucene.analysis.Token;
   import org.apache.lucene.analysis.TokenStream;
  +import org.apache.lucene.analysis.WhitespaceAnalyzer;
   import org.apache.lucene.document.Document;
   import org.apache.lucene.document.Field;
   
   import java.io.Reader;
   import java.io.IOException;
  +import java.io.StringReader;
   
   import junit.framework.TestCase;
   
  - /**
  -  * Term position unit test.
  -  *
  -  * @author Doug Cutting
  -  * @version $Revision$
  -  */
  +/**
  + * Term position unit test.
  + *
  + * @author Doug Cutting
  + * @version $Revision$
  + */
   public class TestPositionIncrement extends TestCase {
  -  public TestPositionIncrement(String name) {
  -    super(name);
  -  }
  -  
   
  -  public static void test() throws Exception {
  +  public void testSetPosition() throws Exception {
       Analyzer analyzer = new Analyzer() {
  -        public TokenStream tokenStream(String fieldName, Reader reader) {
  -          return new TokenStream() {
  -              private final String[] TOKENS = {"1", "2", "3", "4", "5"};
  -              private final int[] INCREMENTS = {1, 2,  1,    0,   1};
  -              private int i = 0;
  -              public Token next() throws IOException {
  -                if (i == TOKENS.length)
  -                  return null;
  -                Token t = new Token(TOKENS[i], i, i);
  -                t.setPositionIncrement(INCREMENTS[i]);
  -                i++;
  -                return t;
  -              }
  -            };
  -        }
  -      };
  +      public TokenStream tokenStream(String fieldName, Reader reader) {
  +        return new TokenStream() {
  +          private final String[] TOKENS = {"1", "2", "3", "4", "5"};
  +          private final int[] INCREMENTS = {1, 2, 1, 0, 1};
  +          private int i = 0;
  +
  +          public Token next() throws IOException {
  +            if (i == TOKENS.length)
  +              return null;
  +            Token t = new Token(TOKENS[i], i, i);
  +            t.setPositionIncrement(INCREMENTS[i]);
  +            i++;
  +            return t;
  +          }
  +        };
  +      }
  +    };
       RAMDirectory store = new RAMDirectory();
       IndexWriter writer = new IndexWriter(store, analyzer, true);
       Document d = new Document();
  @@ -114,46 +113,61 @@
       Hits hits;
   
       q = new PhraseQuery();
  -    q.add(new Term("field","1"));
  -    q.add(new Term("field","2"));
  +    q.add(new Term("field", "1"));
  +    q.add(new Term("field", "2"));
       hits = searcher.search(q);
       assertEquals(0, hits.length());
   
       q = new PhraseQuery();
  -    q.add(new Term("field","2"));
  -    q.add(new Term("field","3"));
  +    q.add(new Term("field", "2"));
  +    q.add(new Term("field", "3"));
       hits = searcher.search(q);
       assertEquals(1, hits.length());
   
       q = new PhraseQuery();
  -    q.add(new Term("field","3"));
  -    q.add(new Term("field","4"));
  +    q.add(new Term("field", "3"));
  +    q.add(new Term("field", "4"));
       hits = searcher.search(q);
       assertEquals(0, hits.length());
   
       q = new PhraseQuery();
  -    q.add(new Term("field","2"));
  -    q.add(new Term("field","4"));
  +    q.add(new Term("field", "2"));
  +    q.add(new Term("field", "4"));
       hits = searcher.search(q);
       assertEquals(1, hits.length());
   
       q = new PhraseQuery();
  -    q.add(new Term("field","3"));
  -    q.add(new Term("field","5"));
  +    q.add(new Term("field", "3"));
  +    q.add(new Term("field", "5"));
       hits = searcher.search(q);
       assertEquals(1, hits.length());
   
       q = new PhraseQuery();
  -    q.add(new Term("field","4"));
  -    q.add(new Term("field","5"));
  +    q.add(new Term("field", "4"));
  +    q.add(new Term("field", "5"));
       hits = searcher.search(q);
       assertEquals(1, hits.length());
   
       q = new PhraseQuery();
  -    q.add(new Term("field","2"));
  -    q.add(new Term("field","5"));
  +    q.add(new Term("field", "2"));
  +    q.add(new Term("field", "5"));
       hits = searcher.search(q);
       assertEquals(0, hits.length());
  +  }
   
  +  /**
  +   * Basic analyzer behavior should be to keep sequential terms in one
  +   * increment from one another.
  +   */
  +  public void testIncrementingPositions() throws Exception {
  +    Analyzer analyzer = new WhitespaceAnalyzer();
  +    TokenStream ts = analyzer.tokenStream("field",
  +                                new StringReader("one two three four five"));
  +
  +    while (true) {
  +      Token token = ts.next();
  +      if (token == null) break;
  +      assertEquals(token.termText(), 1, token.getPositionIncrement());
  +    }
     }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-dev-help@jakarta.apache.org