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/09/15 01:33:54 UTC

svn commit: r1523357 - in /lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions: TestDemoExpressions.java js/TestJavascriptOperations.java

Author: rmuir
Date: Sat Sep 14 23:33:53 2013
New Revision: 1523357

URL: http://svn.apache.org/r1523357
Log:
LUCENE-5207: more tests

Modified:
    lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/TestDemoExpressions.java
    lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/js/TestJavascriptOperations.java

Modified: lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/TestDemoExpressions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/TestDemoExpressions.java?rev=1523357&r1=1523356&r2=1523357&view=diff
==============================================================================
--- lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/TestDemoExpressions.java (original)
+++ lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/TestDemoExpressions.java Sat Sep 14 23:33:53 2013
@@ -111,6 +111,44 @@ public class  TestDemoExpressions extend
     }
   }
   
+  /** tests same binding used more than once in an expression */
+  public void testTwoOfSameBinding() throws Exception {
+    Expression expr = JavascriptCompiler.compile("_score + _score");
+    
+    SimpleBindings bindings = new SimpleBindings();    
+    bindings.add(new SortField("_score", SortField.Type.SCORE));
+    
+    Sort sort = new Sort(expr.getSortField(bindings, true));
+    Query query = new TermQuery(new Term("body", "contents"));
+    TopFieldDocs td = searcher.search(query, null, 3, sort, true, true);
+    for (int i = 0; i < 3; i++) {
+      FieldDoc d = (FieldDoc) td.scoreDocs[i];
+      float expected = 2*d.score;
+      float actual = ((Double)d.fields[0]).floatValue();
+      assertEquals(expected, actual, CheckHits.explainToleranceDelta(expected, actual));
+    }
+  }
+  
+  /** tests expression referring to another expression */
+  public void testExpressionRefersToExpression() throws Exception {
+    Expression expr1 = JavascriptCompiler.compile("_score");
+    Expression expr2 = JavascriptCompiler.compile("2*expr1");
+    
+    SimpleBindings bindings = new SimpleBindings();    
+    bindings.add(new SortField("_score", SortField.Type.SCORE));
+    bindings.add("expr1", expr1);
+    
+    Sort sort = new Sort(expr2.getSortField(bindings, true));
+    Query query = new TermQuery(new Term("body", "contents"));
+    TopFieldDocs td = searcher.search(query, null, 3, sort, true, true);
+    for (int i = 0; i < 3; i++) {
+      FieldDoc d = (FieldDoc) td.scoreDocs[i];
+      float expected = 2*d.score;
+      float actual = ((Double)d.fields[0]).floatValue();
+      assertEquals(expected, actual, CheckHits.explainToleranceDelta(expected, actual));
+    }
+  }
+  
   /** tests huge amounts of variables in the expression */
   public void testLotsOfBindings() throws Exception {
     doTestLotsOfBindings(Byte.MAX_VALUE-1);

Modified: lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/js/TestJavascriptOperations.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/js/TestJavascriptOperations.java?rev=1523357&r1=1523356&r2=1523357&view=diff
==============================================================================
--- lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/js/TestJavascriptOperations.java (original)
+++ lucene/dev/branches/lucene5207/lucene/expressions/src/test/org/apache/lucene/expressions/js/TestJavascriptOperations.java Sat Sep 14 23:33:53 2013
@@ -304,6 +304,10 @@ public class TestJavascriptOperations ex
     assertEvaluatesTo("0x1", 1);
     assertEvaluatesTo("0xF", 15);
     assertEvaluatesTo("0x1234ABCDEF", 78193085935L);
+    assertEvaluatesTo("1 << 0x1", 1 << 0x1);
+    assertEvaluatesTo("1 << 0xA", 1 << 0xA);
+    assertEvaluatesTo("0x1 << 2", 0x1 << 2);
+    assertEvaluatesTo("0xA << 2", 0xA << 2);
   }
   
   public void testHexConst2() throws Exception {
@@ -318,5 +322,10 @@ public class TestJavascriptOperations ex
     assertEvaluatesTo("01", 1);
     assertEvaluatesTo("010", 8);
     assertEvaluatesTo("0123456777", 21913087);
+    assertEvaluatesTo("1 << 01", 1 << 01);
+    assertEvaluatesTo("1 << 010", 1 << 010);
+    assertEvaluatesTo("01 << 2", 01 << 2);
+    assertEvaluatesTo("010 << 2", 010 << 2);
+
   }
 }