You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2013/01/18 15:59:37 UTC

svn commit: r1435170 - /lucene/dev/branches/lucene4547/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java

Author: rmuir
Date: Fri Jan 18 14:59:37 2013
New Revision: 1435170

URL: http://svn.apache.org/viewvc?rev=1435170&view=rev
Log:
fix test

Modified:
    lucene/dev/branches/lucene4547/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java

Modified: lucene/dev/branches/lucene4547/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java?rev=1435170&r1=1435169&r2=1435170&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java (original)
+++ lucene/dev/branches/lucene4547/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java Fri Jan 18 14:59:37 2013
@@ -18,84 +18,46 @@ package org.apache.lucene.queries.functi
  */
 
 import java.io.IOException;
-import java.util.Date;
 
 import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.document.ByteDocValuesField;
-import org.apache.lucene.document.DerefBytesDocValuesField;
+import org.apache.lucene.document.BinaryDocValuesField;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.document.DoubleDocValuesField;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FloatDocValuesField;
 import org.apache.lucene.document.IntDocValuesField;
 import org.apache.lucene.document.LongDocValuesField;
-import org.apache.lucene.document.PackedLongDocValuesField;
-import org.apache.lucene.document.ShortDocValuesField;
 import org.apache.lucene.document.SortedBytesDocValuesField;
-import org.apache.lucene.document.StraightBytesDocValuesField;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.DocValues;
+import org.apache.lucene.index.FieldInfo.DocValuesType;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.queries.function.valuesource.DateDocValuesFieldSource;
-import org.apache.lucene.queries.function.valuesource.NumericDocValuesFieldSource;
-import org.apache.lucene.queries.function.valuesource.StrDocValuesFieldSource;
+import org.apache.lucene.queries.function.valuesource.LongFieldSource;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.util.packed.PackedInts;
+import org.apache.solr.schema.StrFieldSource;
 
 import com.carrotsearch.randomizedtesting.generators.RandomInts;
 
 public class TestDocValuesFieldSources extends LuceneTestCase {
 
-  public void test(DocValues.Type type) throws IOException {
+  public void test(DocValuesType type) throws IOException {
     Directory d = newDirectory();
     IndexWriterConfig iwConfig = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
     final int nDocs = atLeast(50);
     final Field id = new IntDocValuesField("id", 0);
     final Field f;
     switch (type) {
-      case BYTES_FIXED_DEREF:
-        f = new DerefBytesDocValuesField("dv", new BytesRef(), true);
+      case BINARY:
+        f = new BinaryDocValuesField("dv", new BytesRef());
         break;
-      case BYTES_FIXED_SORTED:
-        f = new SortedBytesDocValuesField("dv", new BytesRef(), true);
+      case SORTED:
+        f = new SortedBytesDocValuesField("dv", new BytesRef());
         break;
-      case BYTES_FIXED_STRAIGHT:
-        f = new StraightBytesDocValuesField("dv", new BytesRef(), true);
-        break;
-      case BYTES_VAR_DEREF:
-        f = new DerefBytesDocValuesField("dv", new BytesRef(), false);
-        break;
-      case BYTES_VAR_SORTED:
-        f = new SortedBytesDocValuesField("dv", new BytesRef(), false);
-        break;
-      case BYTES_VAR_STRAIGHT:
-        f = new StraightBytesDocValuesField("dv", new BytesRef(), false);
-        break;
-      case FIXED_INTS_8:
-        f = new ByteDocValuesField("dv", (byte) 0);
-        break;
-      case FIXED_INTS_16:
-        f = new ShortDocValuesField("dv", (short) 0);
-        break;
-      case FIXED_INTS_32:
-        f = new IntDocValuesField("dv", 0);
-        break;
-      case FIXED_INTS_64:
-        f = new LongDocValuesField("dv", 0L);
-        break;
-      case VAR_INTS:
-        f = new PackedLongDocValuesField("dv", 0L);
-        break;
-      case FLOAT_32:
-        f = new FloatDocValuesField("dv", 0f);
-        break;
-      case FLOAT_64:
-        f = new DoubleDocValuesField("dv", 0d);
+      case NUMERIC:
+        f = new LongDocValuesField("dv", 0);
         break;
       default:
         throw new AssertionError();
@@ -110,44 +72,16 @@ public class TestDocValuesFieldSources e
     for (int i = 0; i < nDocs; ++i) {
       id.setIntValue(i);
       switch (type) {
-        case BYTES_FIXED_DEREF:
-        case BYTES_FIXED_SORTED:
-        case BYTES_FIXED_STRAIGHT:
-          vals[i] = _TestUtil.randomFixedByteLengthUnicodeString(random(), 10);
-          f.setBytesValue(new BytesRef((String) vals[i]));
-          break;
-        case BYTES_VAR_DEREF:
-        case BYTES_VAR_SORTED:
-        case BYTES_VAR_STRAIGHT:
+        case SORTED:
+        case BINARY:
           vals[i] = _TestUtil.randomSimpleString(random(), 20);
           f.setBytesValue(new BytesRef((String) vals[i]));
           break;
-        case FIXED_INTS_8:
-          vals[i] = (byte) random().nextInt(256);
-          f.setByteValue((Byte) vals[i]);
-          break;
-        case FIXED_INTS_16:
-          vals[i] = (short) random().nextInt(1 << 16);
-          f.setShortValue((Short) vals[i]);
-          break;
-        case FIXED_INTS_32:
-          vals[i] = random().nextInt();
-          f.setIntValue((Integer) vals[i]);
-          break;
-        case FIXED_INTS_64:
-        case VAR_INTS:
+        case NUMERIC:
           final int bitsPerValue = RandomInts.randomIntBetween(random(), 1, 31); // keep it an int
           vals[i] = (long) random().nextInt((int) PackedInts.maxValue(bitsPerValue));
           f.setLongValue((Long) vals[i]);
           break;
-        case FLOAT_32:
-          vals[i] = random().nextFloat();
-          f.setFloatValue((Float) vals[i]);
-          break;
-        case FLOAT_64:
-          vals[i] = random().nextDouble();
-          f.setDoubleValue((Double) vals[i]);
-          break;
       }
       iw.addDocument(document);
       if (random().nextBoolean() && i % 10 == 9) {
@@ -158,32 +92,15 @@ public class TestDocValuesFieldSources e
 
     DirectoryReader rd = DirectoryReader.open(d);
     for (AtomicReaderContext leave : rd.leaves()) {
-      final FunctionValues ids = new NumericDocValuesFieldSource("id", false).getValues(null, leave);
+      final FunctionValues ids = new LongFieldSource("id").getValues(null, leave);
       final ValueSource vs;
-      final boolean direct = random().nextBoolean();
       switch (type) {
-        case BYTES_FIXED_DEREF:
-        case BYTES_FIXED_SORTED:
-        case BYTES_FIXED_STRAIGHT:
-        case BYTES_VAR_DEREF:
-        case BYTES_VAR_SORTED:
-        case BYTES_VAR_STRAIGHT:
-          vs = new StrDocValuesFieldSource("dv", direct);
-          break;
-        case FLOAT_32:
-        case FLOAT_64:
-        case FIXED_INTS_8:
-        case FIXED_INTS_16:
-        case FIXED_INTS_32:
-          vs = new NumericDocValuesFieldSource("dv", direct);
+        case BINARY:
+        case SORTED:
+          vs = new StrFieldSource("dv");
           break;
-        case FIXED_INTS_64:
-        case VAR_INTS:
-          if (random().nextBoolean()) {
-            vs = new NumericDocValuesFieldSource("dv", direct);
-          } else {
-            vs = new DateDocValuesFieldSource("dv", direct);
-          }
+        case NUMERIC:
+          vs = new LongFieldSource("dv");
           break;
         default:
           throw new AssertionError();
@@ -192,61 +109,22 @@ public class TestDocValuesFieldSources e
       BytesRef bytes = new BytesRef();
       for (int i = 0; i < leave.reader().maxDoc(); ++i) {
         assertTrue(values.exists(i));
-        if (vs instanceof StrDocValuesFieldSource) {
+        if (vs instanceof StrFieldSource) {
           assertTrue(values.objectVal(i) instanceof String);
-        } else if (vs instanceof NumericDocValuesFieldSource) {
-          assertTrue(values.objectVal(i) instanceof Number);
-          switch (type) {
-            case FIXED_INTS_8:
-              assertTrue(values.objectVal(i) instanceof Byte);
-              assertTrue(values.bytesVal(i, bytes));
-              assertEquals(1, bytes.length);
-              break;
-            case FIXED_INTS_16:
-              assertTrue(values.objectVal(i) instanceof Short);
-              assertTrue(values.bytesVal(i, bytes));
-              assertEquals(2, bytes.length);
-              break;
-            case FIXED_INTS_32:
-              assertTrue(values.objectVal(i) instanceof Integer);
-              assertTrue(values.bytesVal(i, bytes));
-              assertEquals(4, bytes.length);
-              break;
-            case FIXED_INTS_64:
-            case VAR_INTS:
-              assertTrue(values.objectVal(i) instanceof Long);
-              assertTrue(values.bytesVal(i, bytes));
-              assertEquals(8, bytes.length);
-              break;
-            case FLOAT_32:
-              assertTrue(values.objectVal(i) instanceof Float);
-              assertTrue(values.bytesVal(i, bytes));
-              assertEquals(4, bytes.length);
-              break;
-            case FLOAT_64:
-              assertTrue(values.objectVal(i) instanceof Double);
-              assertTrue(values.bytesVal(i, bytes));
-              assertEquals(8, bytes.length);
-              break;
-            default:
-              throw new AssertionError();
-          }
-        } else if (vs instanceof DateDocValuesFieldSource) {
-          assertTrue(values.objectVal(i) instanceof Date);
+        } else if (vs instanceof LongFieldSource) {
+          assertTrue(values.objectVal(i) instanceof Long);
+          assertTrue(values.bytesVal(i, bytes));
+          assertEquals(8, bytes.length);
         } else {
           throw new AssertionError();
         }
         
         Object expected = vals[ids.intVal(i)];
         switch (type) {
-          case BYTES_VAR_SORTED:
-          case BYTES_FIXED_SORTED:
+          case SORTED:
             values.ordVal(i); // no exception
             assertTrue(values.numOrd() >= 1);
-          case BYTES_FIXED_DEREF:
-          case BYTES_FIXED_STRAIGHT:
-          case BYTES_VAR_DEREF:
-          case BYTES_VAR_STRAIGHT:
+          case BINARY:
             assertEquals(expected, values.objectVal(i));
             assertEquals(expected, values.strVal(i));
             assertEquals(expected, values.objectVal(i));
@@ -254,17 +132,7 @@ public class TestDocValuesFieldSources e
             assertTrue(values.bytesVal(i, bytes));
             assertEquals(new BytesRef((String) expected), bytes);
             break;
-          case FLOAT_32:
-            assertEquals(((Number) expected).floatValue(), values.floatVal(i), 0.001);
-            break;
-          case FLOAT_64:
-            assertEquals(((Number) expected).doubleValue(), values.doubleVal(i), 0.001d);
-            break;
-          case FIXED_INTS_8:
-          case FIXED_INTS_16:
-          case FIXED_INTS_32:
-          case FIXED_INTS_64:
-          case VAR_INTS:
+          case NUMERIC:
             assertEquals(((Number) expected).longValue(), values.longVal(i));
             break;
         }
@@ -275,7 +143,7 @@ public class TestDocValuesFieldSources e
   }
 
   public void test() throws IOException {
-    for (DocValues.Type type : DocValues.Type.values()) {
+    for (DocValuesType type : DocValuesType.values()) {
       test(type);
     }
   }