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 2011/07/11 23:28:41 UTC

svn commit: r1145365 - in /lucene/dev/branches/fieldtype/lucene/src: test-framework/org/apache/lucene/util/LuceneTestCase.java test/org/apache/lucene/search/TestTermVectors.java

Author: mikemccand
Date: Mon Jul 11 21:28:41 2011
New Revision: 1145365

URL: http://svn.apache.org/viewvc?rev=1145365&view=rev
Log:
LUCENE-2308: re-enable LTC.newField to randomly enable TVs if they are disabled

Modified:
    lucene/dev/branches/fieldtype/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java
    lucene/dev/branches/fieldtype/lucene/src/test/org/apache/lucene/search/TestTermVectors.java

Modified: lucene/dev/branches/fieldtype/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/fieldtype/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java?rev=1145365&r1=1145364&r2=1145365&view=diff
==============================================================================
--- lucene/dev/branches/fieldtype/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/branches/fieldtype/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java Mon Jul 11 21:28:41 2011
@@ -1079,15 +1079,37 @@ public abstract class LuceneTestCase ext
   }
   
   public static org.apache.lucene.document2.Field newField(Random random, String name, String value, FieldType type) {
-    FieldType newType = new FieldType(type);
     if (usually(random)) {
       // most of the time, don't modify the params
-      return new org.apache.lucene.document2.Field(name, newType, value);
+      return new org.apache.lucene.document2.Field(name, type, value);
     }
 
+    FieldType newType = new FieldType(type);
     if (!newType.stored() && random.nextBoolean()) {
       newType.setStored(true); // randomly store it
     }
+
+    if (!newType.storeTermVectors()) {
+      newType.setStoreTermVectors(random.nextBoolean());
+    }
+
+    if (!newType.storeTermVectors()) {
+      if (!newType.storeTermVectorOffsets()) {
+        newType.setStoreTermVectorOffsets(random.nextBoolean());
+      }
+      if (!newType.storeTermVectorPositions()) {
+        newType.setStoreTermVectorPositions(random.nextBoolean());
+      }
+    }
+
+    // TODO: we need to do this, but smarter, ie, most of
+    // the time we set the same value for a given field but
+    // sometimes (rarely) we change it up:
+    /*
+    if (newType.omitNorms()) {
+      newType.setOmitNorms(random.nextBoolean());
+    }
+    */
     
     return new org.apache.lucene.document2.Field(name, newType, value);
   }

Modified: lucene/dev/branches/fieldtype/lucene/src/test/org/apache/lucene/search/TestTermVectors.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/fieldtype/lucene/src/test/org/apache/lucene/search/TestTermVectors.java?rev=1145365&r1=1145364&r2=1145365&view=diff
==============================================================================
--- lucene/dev/branches/fieldtype/lucene/src/test/org/apache/lucene/search/TestTermVectors.java (original)
+++ lucene/dev/branches/fieldtype/lucene/src/test/org/apache/lucene/search/TestTermVectors.java Mon Jul 11 21:28:41 2011
@@ -52,25 +52,22 @@ public class TestTermVectors extends Luc
       FieldType ft = new FieldType(TextField.TYPE_STORED);
       int mod3 = i % 3;
       int mod2 = i % 2;
-      if (mod2 == 0 && mod3 == 0){
+      if (mod2 == 0 && mod3 == 0) {
         ft.setStoreTermVectors(true);
         ft.setStoreTermVectorOffsets(true);
         ft.setStoreTermVectorPositions(true);
-      }
-      else if (mod2 == 0){
+      } else if (mod2 == 0) {
         ft.setStoreTermVectors(true);
         ft.setStoreTermVectorPositions(true);
-      }
-      else if (mod3 == 0){
+      } else if (mod3 == 0) {
         ft.setStoreTermVectors(true);
         ft.setStoreTermVectorOffsets(true);
-      }
-      else {
+      } else {
         ft.setStoreTermVectors(true);
       }
-      doc.add(newField("field", English.intToEnglish(i), ft));
+      doc.add(new Field("field", ft, English.intToEnglish(i)));
       //test no term vectors too
-      doc.add(newField("noTV", English.intToEnglish(i), TextField.TYPE_STORED));
+      doc.add(new Field("noTV", TextField.TYPE_STORED, English.intToEnglish(i)));
       writer.addDocument(doc);
     }
     reader = writer.getReader();
@@ -95,11 +92,10 @@ public class TestTermVectors extends Luc
     ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
     assertEquals(100, hits.length);
       
-    for (int i = 0; i < hits.length; i++)
-    {
+    for (int i = 0; i < hits.length; i++) {
       TermFreqVector [] vector = searcher.reader.getTermFreqVectors(hits[i].doc);
       assertTrue(vector != null);
-      assertTrue(vector.length == 1);
+      assertEquals("doc=" + hits[i].doc + " tv=" + vector, 1, vector.length);
     }
     TermFreqVector vector;
     vector = searcher.reader.getTermFreqVector(hits[0].doc, "noTV");