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 2015/10/29 20:51:37 UTC

svn commit: r1711351 - in /lucene/dev/trunk/lucene: codecs/src/java/org/apache/lucene/codecs/simpletext/ core/src/java/org/apache/lucene/index/ core/src/test/org/apache/lucene/index/ test-framework/src/java/org/apache/lucene/index/

Author: mikemccand
Date: Thu Oct 29 19:51:37 2015
New Revision: 1711351

URL: http://svn.apache.org/viewvc?rev=1711351&view=rev
Log:
fix MismatchedLeafReader to carry over dimensional count/numBytes for each field; add some toString; improve test debuggability

Modified:
    lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDimensionalReader.java
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiDimensionalValues.java
    lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDimensionalValues.java
    lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MismatchedLeafReader.java
    lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java

Modified: lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDimensionalReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDimensionalReader.java?rev=1711351&r1=1711350&r2=1711351&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDimensionalReader.java (original)
+++ lucene/dev/trunk/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDimensionalReader.java Thu Oct 29 19:51:37 2015
@@ -173,4 +173,9 @@ class SimpleTextDimensionalReader extend
   public void close() throws IOException {
     dataIn.close();
   }
+
+  @Override
+  public String toString() {
+    return "SimpleTextDimensionalReader(segment=" + readState.segmentInfo.name + " maxDoc=" + readState.segmentInfo.maxDoc() + ")";
+  }
 }

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiDimensionalValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiDimensionalValues.java?rev=1711351&r1=1711350&r2=1711351&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiDimensionalValues.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/MultiDimensionalValues.java Thu Oct 29 19:51:37 2015
@@ -40,7 +40,6 @@ class MultiDimensionalValues extends Dim
       return leaves.get(0).reader().getDimensionalValues();
     }
 
-    boolean anyReal = false;
     List<DimensionalValues> values = new ArrayList<>();
     List<Integer> docBases = new ArrayList<>();
     for (int i = 0; i < size; i++) {
@@ -76,4 +75,20 @@ class MultiDimensionalValues extends Dim
                         });
     }
   }
+
+  @Override
+  public String toString() {
+    StringBuilder b = new StringBuilder();
+    b.append("MultiDimensionalValues(");
+    for(int i=0;i<subs.size();i++) {
+      if (i > 0) {
+        b.append(", ");
+      }
+      b.append("docBase=");
+      b.append(docBases.get(i));
+      b.append(" sub=" + subs.get(i));
+    }
+    b.append(')');
+    return b.toString();
+  }
 }

Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDimensionalValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDimensionalValues.java?rev=1711351&r1=1711350&r2=1711351&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDimensionalValues.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDimensionalValues.java Thu Oct 29 19:51:37 2015
@@ -929,7 +929,7 @@ public class TestDimensionalValues exten
               }
               //System.out.println("visit check docID=" + docID);
               for(int dim=0;dim<numDims;dim++) {
-                //System.out.println("  dim=" + dim + " value=" + new BytesRef(packedValue, dim*bytesPerDim, bytesPerDim));
+                //System.out.println("  dim=" + dim + " value=" + new BytesRef(packedValue, dim*numBytesPerDim, numBytesPerDim));
                 if (BKDUtil.compare(numBytesPerDim, packedValue, dim, queryMin[dim], 0) < 0 ||
                     BKDUtil.compare(numBytesPerDim, packedValue, dim, queryMax[dim], 0) > 0) {
                   //System.out.println("  no");
@@ -990,8 +990,23 @@ public class TestDimensionalValues exten
         }
 
         int limit = Math.max(expected.length(), hits.length());
+        int failCount = 0;
+        int successCount = 0;
         for(int id=0;id<limit;id++) {
-          assertEquals("docID=" + id, expected.get(id), hits.get(id));
+          if (expected.get(id) != hits.get(id)) {
+            System.out.println("FAIL: id=" + id);
+            failCount++;
+          } else {
+            successCount++;
+          }
+        }
+
+        if (failCount != 0) {
+          for(int docID=0;docID<r.maxDoc();docID++) {
+            System.out.println("  docID=" + docID + " id=" + idValues.get(docID));
+          }
+
+          fail(failCount + " docs failed; " + successCount + " docs succeeded");
         }
       }
     } finally {

Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MismatchedLeafReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MismatchedLeafReader.java?rev=1711351&r1=1711350&r2=1711351&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MismatchedLeafReader.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MismatchedLeafReader.java Thu Oct 29 19:51:37 2015
@@ -67,7 +67,8 @@ public class MismatchedLeafReader extend
                                         oldInfo.getDocValuesType(),  // docValuesType
                                         oldInfo.getDocValuesGen(),   // dvGen
                                         oldInfo.attributes(),        // attributes
-                                        0, 0);                       // dimensional count,numBytes
+                                        oldInfo.getDimensionCount(),
+                                        oldInfo.getDimensionNumBytes());
       shuffled.set(i, newInfo);
     }
     

Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java?rev=1711351&r1=1711350&r2=1711351&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java Thu Oct 29 19:51:37 2015
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Random;
 
+import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
 
 /**
@@ -156,12 +157,18 @@ public class MockRandomMergePolicy exten
           int thingToDo = r.nextInt(7);
           if (thingToDo == 0) {
             // simple no-op FilterReader
+            if (LuceneTestCase.VERBOSE) {
+              System.out.println("NOTE: MockRandomMergePolicy now swaps in a SlowCodecReaderWrapper for merging reader=" + readers.get(i));
+            }
             readers.set(i, SlowCodecReaderWrapper.wrap(new FilterLeafReader(readers.get(i))));
           } else if (thingToDo == 1) {
             // renumber fields
             // NOTE: currently this only "blocks" bulk merges just by
             // being a FilterReader. But it might find bugs elsewhere, 
             // and maybe the situation can be improved in the future.
+            if (LuceneTestCase.VERBOSE) {
+              System.out.println("NOTE: MockRandomMergePolicy now swaps in a MismatchedLeafReader for merging reader=" + readers.get(i));
+            }
             readers.set(i, SlowCodecReaderWrapper.wrap(new MismatchedLeafReader(readers.get(i), r)));
           }
           // otherwise, reader is unchanged