lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gol...@apache.org
Subject cvs commit: jakarta-lucene/src/test/org/apache/lucene/index TestSegmentTermDocs.java
Date Wed, 21 Apr 2004 16:35:46 GMT
goller      2004/04/21 09:35:46

  Modified:    src/test/org/apache/lucene/index TestSegmentTermDocs.java
  Log:
  test for skipTo added
  
  Revision  Changes    Path
  1.3       +234 -99   jakarta-lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
  
  Index: TestSegmentTermDocs.java
  ===================================================================
  RCS file: /home/cvs/jakarta-lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestSegmentTermDocs.java	29 Mar 2004 22:48:06 -0000	1.2
  +++ TestSegmentTermDocs.java	21 Apr 2004 16:35:46 -0000	1.3
  @@ -1,99 +1,234 @@
  -package org.apache.lucene.index;
  -
  -/**
  - * Copyright 2004 The Apache Software Foundation
  - *
  - * Licensed under the Apache License, Version 2.0 (the "License");
  - * you may not use this file except in compliance with the License.
  - * You may obtain a copy of the License at
  - *
  - *     http://www.apache.org/licenses/LICENSE-2.0
  - *
  - * Unless required by applicable law or agreed to in writing, software
  - * distributed under the License is distributed on an "AS IS" BASIS,
  - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  - * See the License for the specific language governing permissions and
  - * limitations under the License.
  - */
  -
  -import junit.framework.TestCase;
  -import org.apache.lucene.store.RAMDirectory;
  -import org.apache.lucene.store.Directory;
  -import org.apache.lucene.analysis.Analyzer;
  -import org.apache.lucene.analysis.WhitespaceAnalyzer;
  -import org.apache.lucene.search.Similarity;
  -import org.apache.lucene.document.Document;
  -import org.apache.lucene.document.Field;
  -
  -import java.io.IOException;
  -
  -public class TestSegmentTermDocs extends TestCase {
  -  private Document testDoc = new Document();
  -  private Directory dir = new RAMDirectory();
  -
  -  public TestSegmentTermDocs(String s) {
  -    super(s);
  -  }
  -
  -  protected void setUp() {
  -    DocHelper.setupDoc(testDoc);
  -    DocHelper.writeDoc(dir, testDoc);
  -  }
  -
  -
  -  protected void tearDown() {
  -
  -  }
  -
  -  public void test() {
  -    assertTrue(dir != null);
  -  }
  -  
  -  public void testTermDocs() {
  -    try {
  -      //After adding the document, we should be able to read it back in
  -      SegmentReader reader = new SegmentReader(new SegmentInfo("test", 1, dir));
  -      assertTrue(reader != null);
  -      SegmentTermDocs segTermDocs = new SegmentTermDocs(reader);
  -      assertTrue(segTermDocs != null);
  -      segTermDocs.seek(new Term(DocHelper.TEXT_FIELD_2_KEY, "field"));
  -      if (segTermDocs.next() == true)
  -      {
  -        int docId = segTermDocs.doc();
  -        assertTrue(docId == 0);
  -        int freq = segTermDocs.freq();
  -        assertTrue(freq == 3);  
  -      }
  -      reader.close();
  -    } catch (IOException e) {
  -      assertTrue(false);
  -    }
  -  }  
  -  
  -  public void testBadSeek() {
  -    try {
  -      //After adding the document, we should be able to read it back in
  -      SegmentReader reader = new SegmentReader(new SegmentInfo("test", 3, dir));
  -      assertTrue(reader != null);
  -      SegmentTermDocs segTermDocs = new SegmentTermDocs(reader);
  -      assertTrue(segTermDocs != null);
  -      segTermDocs.seek(new Term("textField2", "bad"));
  -      assertTrue(segTermDocs.next() == false);
  -      reader.close();
  -    } catch (IOException e) {
  -      assertTrue(false);
  -    }
  -    try {
  -      //After adding the document, we should be able to read it back in
  -      SegmentReader reader = new SegmentReader(new SegmentInfo("test", 3, dir));
  -      assertTrue(reader != null);
  -      SegmentTermDocs segTermDocs = new SegmentTermDocs(reader);
  -      assertTrue(segTermDocs != null);
  -      segTermDocs.seek(new Term("junk", "bad"));
  -      assertTrue(segTermDocs.next() == false);
  -      reader.close();
  -    } catch (IOException e) {
  -      assertTrue(false);
  -    }
  -  }    
  -}
  +package org.apache.lucene.index;
  +
  +/**
  + * Copyright 2004 The Apache Software Foundation
  + *
  + * Licensed under the Apache License, Version 2.0 (the "License");
  + * you may not use this file except in compliance with the License.
  + * You may obtain a copy of the License at
  + *
  + *     http://www.apache.org/licenses/LICENSE-2.0
  + *
  + * Unless required by applicable law or agreed to in writing, software
  + * distributed under the License is distributed on an "AS IS" BASIS,
  + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  + * See the License for the specific language governing permissions and
  + * limitations under the License.
  + */
  +
  +import junit.framework.TestCase;
  +import org.apache.lucene.store.RAMDirectory;
  +import org.apache.lucene.store.Directory;
  +import org.apache.lucene.analysis.Analyzer;
  +import org.apache.lucene.analysis.WhitespaceAnalyzer;
  +import org.apache.lucene.search.Similarity;
  +import org.apache.lucene.document.Document;
  +import org.apache.lucene.document.Field;
  +
  +import java.io.IOException;
  +
  +public class TestSegmentTermDocs extends TestCase {
  +  private Document testDoc = new Document();
  +  private Directory dir = new RAMDirectory();
  +
  +  public TestSegmentTermDocs(String s) {
  +    super(s);
  +  }
  +
  +  protected void setUp() {
  +    DocHelper.setupDoc(testDoc);
  +    DocHelper.writeDoc(dir, testDoc);
  +  }
  +
  +
  +  protected void tearDown() {
  +
  +  }
  +
  +  public void test() {
  +    assertTrue(dir != null);
  +  }
  +  
  +  public void testTermDocs() {
  +    try {
  +      //After adding the document, we should be able to read it back in
  +      SegmentReader reader = new SegmentReader(new SegmentInfo("test", 1, dir));
  +      assertTrue(reader != null);
  +      SegmentTermDocs segTermDocs = new SegmentTermDocs(reader);
  +      assertTrue(segTermDocs != null);
  +      segTermDocs.seek(new Term(DocHelper.TEXT_FIELD_2_KEY, "field"));
  +      if (segTermDocs.next() == true)
  +      {
  +        int docId = segTermDocs.doc();
  +        assertTrue(docId == 0);
  +        int freq = segTermDocs.freq();
  +        assertTrue(freq == 3);  
  +      }
  +      reader.close();
  +    } catch (IOException e) {
  +      assertTrue(false);
  +    }
  +  }  
  +  
  +  public void testBadSeek() {
  +    try {
  +      //After adding the document, we should be able to read it back in
  +      SegmentReader reader = new SegmentReader(new SegmentInfo("test", 3, dir));
  +      assertTrue(reader != null);
  +      SegmentTermDocs segTermDocs = new SegmentTermDocs(reader);
  +      assertTrue(segTermDocs != null);
  +      segTermDocs.seek(new Term("textField2", "bad"));
  +      assertTrue(segTermDocs.next() == false);
  +      reader.close();
  +    } catch (IOException e) {
  +      assertTrue(false);
  +    }
  +    try {
  +      //After adding the document, we should be able to read it back in
  +      SegmentReader reader = new SegmentReader(new SegmentInfo("test", 3, dir));
  +      assertTrue(reader != null);
  +      SegmentTermDocs segTermDocs = new SegmentTermDocs(reader);
  +      assertTrue(segTermDocs != null);
  +      segTermDocs.seek(new Term("junk", "bad"));
  +      assertTrue(segTermDocs.next() == false);
  +      reader.close();
  +    } catch (IOException e) {
  +      assertTrue(false);
  +    }
  +  }
  +  
  +  public void testSkipTo() {
  +    try {
  +      Directory dir = new RAMDirectory();
  +      IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true);
  +      
  +      Term ta = new Term("content","aaa");
  +      for(int i = 0; i < 10; i++)
  +        addDoc(writer, "aaa aaa aaa aaa");
  +        
  +      Term tb = new Term("content","bbb");
  +      for(int i = 0; i < 16; i++)
  +        addDoc(writer, "bbb bbb bbb bbb");
  +        
  +      Term tc = new Term("content","ccc");
  +      for(int i = 0; i < 50; i++)
  +        addDoc(writer, "ccc ccc ccc ccc");
  +        
  +      // assure that we deal with a single segment  
  +      writer.optimize();
  +      writer.close();
  +      
  +      IndexReader reader = IndexReader.open(dir);
  +      TermDocs tdocs = reader.termDocs();
  +      
  +      // without optimization (assumption skipInterval == 16)
  +      
  +      // with next
  +      tdocs.seek(ta);
  +      assertTrue(tdocs.next());
  +      assertEquals(0, tdocs.doc());
  +      assertEquals(4, tdocs.freq());
  +      assertTrue(tdocs.next());
  +      assertEquals(1, tdocs.doc());
  +      assertEquals(4, tdocs.freq());
  +      assertTrue(tdocs.skipTo(0));
  +      assertEquals(2, tdocs.doc());
  +      assertTrue(tdocs.skipTo(4));
  +      assertEquals(4, tdocs.doc());
  +      assertTrue(tdocs.skipTo(9));
  +      assertEquals(9, tdocs.doc());
  +      assertFalse(tdocs.skipTo(10));
  +      
  +      // without next
  +      tdocs.seek(ta);
  +      assertTrue(tdocs.skipTo(0));
  +      assertEquals(0, tdocs.doc());
  +      assertTrue(tdocs.skipTo(4));
  +      assertEquals(4, tdocs.doc());
  +      assertTrue(tdocs.skipTo(9));
  +      assertEquals(9, tdocs.doc());
  +      assertFalse(tdocs.skipTo(10));
  +      
  +      // exactly skipInterval documents and therefore with optimization
  +      
  +      // with next
  +      tdocs.seek(tb);
  +      assertTrue(tdocs.next());
  +      assertEquals(10, tdocs.doc());
  +      assertEquals(4, tdocs.freq());
  +      assertTrue(tdocs.next());
  +      assertEquals(11, tdocs.doc());
  +      assertEquals(4, tdocs.freq());
  +      assertTrue(tdocs.skipTo(5));
  +      assertEquals(12, tdocs.doc());
  +      assertTrue(tdocs.skipTo(15));
  +      assertEquals(15, tdocs.doc());
  +      assertTrue(tdocs.skipTo(24));
  +      assertEquals(24, tdocs.doc());
  +      assertTrue(tdocs.skipTo(25));
  +      assertEquals(25, tdocs.doc());
  +      assertFalse(tdocs.skipTo(26));
  +      
  +      // without next
  +      tdocs.seek(tb);
  +      assertTrue(tdocs.skipTo(5));
  +      assertEquals(10, tdocs.doc());
  +      assertTrue(tdocs.skipTo(15));
  +      assertEquals(15, tdocs.doc());
  +      assertTrue(tdocs.skipTo(24));
  +      assertEquals(24, tdocs.doc());
  +      assertTrue(tdocs.skipTo(25));
  +      assertEquals(25, tdocs.doc());
  +      assertFalse(tdocs.skipTo(26));
  +      
  +      // much more than skipInterval documents and therefore with optimization
  +      
  +      // with next
  +      tdocs.seek(tc);
  +      assertTrue(tdocs.next());
  +      assertEquals(26, tdocs.doc());
  +      assertEquals(4, tdocs.freq());
  +      assertTrue(tdocs.next());
  +      assertEquals(27, tdocs.doc());
  +      assertEquals(4, tdocs.freq());
  +      assertTrue(tdocs.skipTo(5));
  +      assertEquals(28, tdocs.doc());
  +      assertTrue(tdocs.skipTo(40));
  +      assertEquals(40, tdocs.doc());
  +      assertTrue(tdocs.skipTo(57));
  +      assertEquals(57, tdocs.doc());
  +      assertTrue(tdocs.skipTo(74));
  +      assertEquals(74, tdocs.doc());
  +      assertTrue(tdocs.skipTo(75));
  +      assertEquals(75, tdocs.doc());
  +      assertFalse(tdocs.skipTo(76));
  +      
  +      //without next
  +      tdocs.seek(tc);
  +      assertTrue(tdocs.skipTo(5));
  +      assertEquals(26, tdocs.doc());
  +      assertTrue(tdocs.skipTo(40));
  +      assertEquals(40, tdocs.doc());
  +      assertTrue(tdocs.skipTo(57));
  +      assertEquals(57, tdocs.doc());
  +      assertTrue(tdocs.skipTo(74));
  +      assertEquals(74, tdocs.doc());
  +      assertTrue(tdocs.skipTo(75));
  +      assertEquals(75, tdocs.doc());
  +      assertFalse(tdocs.skipTo(76));
  +      
  +      tdocs.close();
  +      reader.close();
  +      dir.close();
  +    } catch (IOException e) {
  +        assertTrue(false);
  +    }
  +  }
  +  
  +  private void addDoc(IndexWriter writer, String value) throws IOException
  +  {
  +      Document doc = new Document();
  +      doc.add(Field.UnStored("content", value));
  +      writer.addDocument(doc);
  +  }
  +}
  
  
  

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


Mime
View raw message