You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2010/10/12 11:55:29 UTC

svn commit: r1021720 - in /lucene/dev/trunk/lucene/src/test/org/apache/lucene: TestExternalCodecs.java analysis/MockAnalyzer.java index/TestIndexWriter.java index/TestLazyProxSkipping.java search/spans/TestBasics.java

Author: mikemccand
Date: Tue Oct 12 09:55:29 2010
New Revision: 1021720

URL: http://svn.apache.org/viewvc?rev=1021720&view=rev
Log:
LUCENE-2696: MockAnalyzer injects payloads for better test coverage

Modified:
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/analysis/MockAnalyzer.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/spans/TestBasics.java

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java?rev=1021720&r1=1021719&r2=1021720&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/TestExternalCodecs.java Tue Oct 12 09:55:29 2010
@@ -129,6 +129,8 @@ public class TestExternalCodecs extends 
     static class RAMDoc {
       final int docID;
       final int[] positions;
+      byte[][] payloads;
+
       public RAMDoc(int docID, int freq) {
         this.docID = docID;
         positions = new int[freq];
@@ -212,10 +214,15 @@ public class TestExternalCodecs extends 
 
       @Override
       public void addPosition(int position, BytesRef payload) {
-        if (payload != null) {
-          throw new UnsupportedOperationException("can't handle payloads");
+        current.positions[posUpto] = position;
+        if (payload != null && payload.length > 0) {
+          if (current.payloads == null) {
+            current.payloads = new byte[current.positions.length][];
+          }
+          byte[] bytes = current.payloads[posUpto] = new byte[payload.length];
+          System.arraycopy(payload.bytes, payload.offset, bytes, 0, payload.length);
         }
-        current.positions[posUpto++] = position;
+        posUpto++;
       }
 
       @Override
@@ -436,12 +443,12 @@ public class TestExternalCodecs extends 
 
       @Override
       public boolean hasPayload() {
-        return false;
+        return current.payloads != null && current.payloads[posUpto-1] != null;
       }
 
       @Override
       public BytesRef getPayload() {
-        return null;
+        return new BytesRef(current.payloads[posUpto-1]);
       }
     }
 
@@ -614,7 +621,7 @@ public class TestExternalCodecs extends 
     final int NUM_DOCS = 173;
     Directory dir = newDirectory();
     IndexWriter w = new IndexWriter(dir,
-                                    newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setCodecProvider(new MyCodecs()));
+                                    newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.WHITESPACE, true, true)).setCodecProvider(new MyCodecs()));
 
     w.setMergeFactor(3);
     Document doc = new Document();

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/analysis/MockAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/analysis/MockAnalyzer.java?rev=1021720&r1=1021719&r2=1021720&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/analysis/MockAnalyzer.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/analysis/MockAnalyzer.java Tue Oct 12 09:55:29 2010
@@ -22,7 +22,6 @@ import java.io.Reader;
 
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
-import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
 import org.apache.lucene.index.Payload;
 import org.apache.lucene.util.automaton.CharacterRunAutomaton;
 
@@ -38,7 +37,7 @@ public final class MockAnalyzer extends 
   private int positionIncrementGap;
 
   public MockAnalyzer(CharacterRunAutomaton runAutomaton, boolean lowerCase, CharacterRunAutomaton filter, boolean enablePositionIncrements) {
-    this(runAutomaton, lowerCase, filter, enablePositionIncrements, false);    
+    this(runAutomaton, lowerCase, filter, enablePositionIncrements, true);    
   }
 
   /**
@@ -65,7 +64,7 @@ public final class MockAnalyzer extends 
    * @param lowerCase true if the tokenizer should lowercase terms
    */
   public MockAnalyzer(CharacterRunAutomaton runAutomaton, boolean lowerCase) {
-    this(runAutomaton, lowerCase, MockTokenFilter.EMPTY_STOPSET, false, false);
+    this(runAutomaton, lowerCase, MockTokenFilter.EMPTY_STOPSET, false, true);
   }
 
   public MockAnalyzer(CharacterRunAutomaton runAutomaton, boolean lowerCase, boolean payload) {
@@ -148,4 +147,10 @@ final class SimplePayloadFilter extends 
       return false;
     }
   }
-}
\ No newline at end of file
+
+  @Override
+  public void reset() throws IOException {
+    super.reset();
+    pos = 0;
+  }
+}

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1021720&r1=1021719&r2=1021720&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java Tue Oct 12 09:55:29 2010
@@ -73,7 +73,6 @@ import org.apache.lucene.store.MockDirec
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.store.SingleInstanceLockFactory;
 import org.apache.lucene.util.UnicodeUtil;
-import org.apache.lucene.util.Version;
 import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.util.ThreadInterruptedException;
 import org.apache.lucene.util.BytesRef;
@@ -4962,7 +4961,7 @@ public class TestIndexWriter extends Luc
     final Random r = random;
 
     Directory dir = newDirectory();
-    FlushCountingIndexWriter w = new FlushCountingIndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer()).setRAMBufferSizeMB(0.5).setMaxBufferedDocs(-1).setMaxBufferedDeleteTerms(-1));
+    FlushCountingIndexWriter w = new FlushCountingIndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.WHITESPACE, true, false)).setRAMBufferSizeMB(0.5).setMaxBufferedDocs(-1).setMaxBufferedDeleteTerms(-1));
     //w.setInfoStream(System.out);
     Document doc = new Document();
     doc.add(newField("field", "go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20", Field.Store.NO, Field.Index.ANALYZED));

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java?rev=1021720&r1=1021719&r2=1021720&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java Tue Oct 12 09:55:29 2010
@@ -20,6 +20,7 @@ package org.apache.lucene.index;
 import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
+import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.codecs.CodecProvider;
 import org.apache.lucene.document.Field;
@@ -69,7 +70,7 @@ public class TestLazyProxSkipping extend
         int numDocs = 500;
         
         Directory directory = new SeekCountingDirectory(new RAMDirectory());
-        IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10));
+        IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.WHITESPACE, true, false)).setMaxBufferedDocs(10));
         ((LogMergePolicy) writer.getConfig().getMergePolicy()).setUseCompoundFile(false);
         ((LogMergePolicy) writer.getConfig().getMergePolicy()).setUseCompoundDocStore(false);
         for (int i = 0; i < numDocs; i++) {

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/spans/TestBasics.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/spans/TestBasics.java?rev=1021720&r1=1021719&r2=1021720&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/spans/TestBasics.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/spans/TestBasics.java Tue Oct 12 09:55:29 2010
@@ -24,7 +24,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.analysis.MockPayloadAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -356,8 +355,8 @@ public class TestBasics extends LuceneTe
     Payload pay = new Payload(("pos: " + 5).getBytes());
     SpanQuery query = new SpanPayloadCheckQuery(term1, Collections.singletonList(pay.getData()));
     checkHits(query, new int[]
-      {5});
-    assertTrue(searcher.explain(query, 5).getValue() > 0.0f);
+      {1125, 1135, 1145, 1155, 1165, 1175, 1185, 1195, 1225, 1235, 1245, 1255, 1265, 1275, 1285, 1295, 1325, 1335, 1345, 1355, 1365, 1375, 1385, 1395, 1425, 1435, 1445, 1455, 1465, 1475, 1485, 1495, 1525, 1535, 1545, 1555, 1565, 1575, 1585, 1595, 1625, 1635, 1645, 1655, 1665, 1675, 1685, 1695, 1725, 1735, 1745, 1755, 1765, 1775, 1785, 1795, 1825, 1835, 1845, 1855, 1865, 1875, 1885, 1895, 1925, 1935, 1945, 1955, 1965, 1975, 1985, 1995});
+    assertTrue(searcher.explain(query, 1125).getValue() > 0.0f);
 
     SpanTermQuery term2 = new SpanTermQuery(new Term("field", "hundred"));
     SpanNearQuery snq;
@@ -368,22 +367,22 @@ public class TestBasics extends LuceneTe
     clauses[0] = term1;
     clauses[1] = term2;
     snq = new SpanNearQuery(clauses, 0, true);
-    pay = new Payload(("pos: " + 1656).getBytes());
-    pay2 = new Payload(("pos: " + 1657).getBytes());
+    pay = new Payload(("pos: " + 0).getBytes());
+    pay2 = new Payload(("pos: " + 1).getBytes());
     list = new ArrayList<byte[]>();
     list.add(pay.getData());
     list.add(pay2.getData());
     query = new SpanNearPayloadCheckQuery(snq, list);
     checkHits(query, new int[]
-      {500});
+      {500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599});
     clauses = new SpanQuery[3];
     clauses[0] = term1;
     clauses[1] = term2;
     clauses[2] = new SpanTermQuery(new Term("field", "five"));
     snq = new SpanNearQuery(clauses, 0, true);
-    pay = new Payload(("pos: " + 1670).getBytes());
-    pay2 = new Payload(("pos: " + 1671).getBytes());
-    Payload pay3 = new Payload(("pos: " + 1672).getBytes());
+    pay = new Payload(("pos: " + 0).getBytes());
+    pay2 = new Payload(("pos: " + 1).getBytes());
+    Payload pay3 = new Payload(("pos: " + 2).getBytes());
     list = new ArrayList<byte[]>();
     list.add(pay.getData());
     list.add(pay2.getData());
@@ -412,16 +411,16 @@ public class TestBasics extends LuceneTe
     checkHits(query, new int[]{1103, 1203,1303,1403,1503,1603,1703,1803,1903});
 
     Collection<byte[]> payloads = new ArrayList<byte[]>();
-    Payload pay = new Payload(("pos: " + 3896).getBytes());
-    Payload pay2 = new Payload(("pos: " + 3897).getBytes());
-    Payload pay3 = new Payload(("pos: " + 3899).getBytes());
-    Payload pay4 = new Payload(("pos: " + 3900).getBytes());
+    Payload pay = new Payload(("pos: " + 0).getBytes());
+    Payload pay2 = new Payload(("pos: " + 1).getBytes());
+    Payload pay3 = new Payload(("pos: " + 3).getBytes());
+    Payload pay4 = new Payload(("pos: " + 4).getBytes());
     payloads.add(pay.getData());
     payloads.add(pay2.getData());
     payloads.add(pay3.getData());
     payloads.add(pay4.getData());
     query = new SpanNearPayloadCheckQuery(oneThousHunThree, payloads);
-    checkHits(query, new int[]{1103});
+    checkHits(query, new int[]{1103, 1203,1303,1403,1503,1603,1703,1803,1903});
 
   }