You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ja...@apache.org on 2015/11/10 22:13:03 UTC

svn commit: r1713729 - in /lucene/dev/trunk/lucene: CHANGES.txt queries/src/java/org/apache/lucene/queries/function/valuesource/RangeMapFloatFunction.java queries/src/test/org/apache/lucene/queries/function/TestFunctionQueryExplanations.java

Author: janhoy
Date: Tue Nov 10 21:13:03 2015
New Revision: 1713729

URL: http://svn.apache.org/viewvc?rev=1713729&view=rev
Log:
LUCENE-6888: Explain output of map() function now also prints default value

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/RangeMapFloatFunction.java
    lucene/dev/trunk/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionQueryExplanations.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1713729&r1=1713728&r2=1713729&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Tue Nov 10 21:13:03 2015
@@ -273,6 +273,8 @@ Bug Fixes
   "leak" if you tokenize large strings with many threads across many
   indices (Alex Chow via Mike McCandless)
 
+* LUCENE-6888: Explain output of map() function now also prints default value (janhoy)
+
 Other
 
 * LUCENE-6478: Test execution can hang with java.security.debug. (Dawid Weiss)

Modified: lucene/dev/trunk/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/RangeMapFloatFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/RangeMapFloatFunction.java?rev=1713729&r1=1713728&r2=1713729&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/RangeMapFloatFunction.java (original)
+++ lucene/dev/trunk/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/RangeMapFloatFunction.java Tue Nov 10 21:13:03 2015
@@ -55,7 +55,7 @@ public class RangeMapFloatFunction exten
 
   @Override
   public String description() {
-    return "map(" + source.description() + "," + min + "," + max + "," + target.description() + ")";
+    return "map(" + source.description() + "," + min + "," + max + "," + target.description() + "," + (defaultVal == null ? "null" : defaultVal.description()) + ")";
   }
 
   @Override
@@ -71,7 +71,7 @@ public class RangeMapFloatFunction exten
       }
       @Override
       public String toString(int doc) {
-        return "map(" + vals.toString(doc) + ",min=" + min + ",max=" + max + ",target=" + targets.toString(doc) + ")";
+        return "map(" + vals.toString(doc) + ",min=" + min + ",max=" + max + ",target=" + targets.toString(doc) + ",defaultVal=" + (defaults == null ? "null" : (defaults.toString(doc))) + ")";
       }
     };
   }

Modified: lucene/dev/trunk/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionQueryExplanations.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionQueryExplanations.java?rev=1713729&r1=1713728&r2=1713729&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionQueryExplanations.java (original)
+++ lucene/dev/trunk/lucene/queries/src/test/org/apache/lucene/queries/function/TestFunctionQueryExplanations.java Tue Nov 10 21:13:03 2015
@@ -18,6 +18,7 @@ package org.apache.lucene.queries.functi
  */
 
 import org.apache.lucene.queries.function.valuesource.ConstValueSource;
+import org.apache.lucene.queries.function.valuesource.RangeMapFloatFunction;
 import org.apache.lucene.search.BaseExplanationTestCase;
 import org.apache.lucene.search.BoostQuery;
 import org.apache.lucene.search.Query;
@@ -33,4 +34,17 @@ public class TestFunctionQueryExplanatio
     Query q = new BoostQuery(new FunctionQuery(new ConstValueSource(5)), 2);
     qtest(q, new int[] { 0,1,2,3 });
   }
+
+  public void testMapFunction() throws Exception {
+    ValueSource rff = new RangeMapFloatFunction(new ConstValueSource(3), 0, 1, 2, new Float(4));
+    Query q = new FunctionQuery(rff);
+    qtest(q, new int[] { 0,1,2,3 });
+    assertEquals("map(const(3.0),0.0,1.0,const(2.0),const(4.0))", rff.description());
+    assertEquals("map(const(3.0),min=0.0,max=1.0,target=const(2.0),defaultVal=const(4.0))", rff.getValues(null, null).toString(123));
+
+    // DefaultValue is null -> defaults to source value
+    rff = new RangeMapFloatFunction(new ConstValueSource(3), 0, 1, 2, null);
+    assertEquals("map(const(3.0),0.0,1.0,const(2.0),null)", rff.description());
+    assertEquals("map(const(3.0),min=0.0,max=1.0,target=const(2.0),defaultVal=null)", rff.getValues(null, null).toString(123));
+  }
 }