Author: sebb
Date: Mon Sep 14 15:27:13 2009
New Revision: 814694

URL: http://svn.apache.org/viewvc?rev=814694&view=rev
Log:
Add some coercion tests

Modified:
    
commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/ArithmeticTest.java

Modified: 
commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/ArithmeticTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/ArithmeticTest.java?rev=814694&r1=814693&r2=814694&view=diff
==============================================================================
--- 
commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/ArithmeticTest.java
 (original)
+++ 
commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl/ArithmeticTest.java
 Mon Sep 14 15:27:13 2009
@@ -120,6 +120,37 @@
         asserter.assertExpression("imanull + imanull", new Integer(0));
     }
 
+    public void testCoercions() throws Exception {
+        asserter.assertExpression("1", new Integer(1)); // numerics default to 
Integer
+//        asserter.assertExpression("5L", new Long(5)); // TODO when 
implemented
+        
+        asserter.setVariable("I2", new Integer(2));
+        asserter.setVariable("L2", new Long(2));
+        asserter.setVariable("L3", new Long(3));
+        asserter.setVariable("B10", BigInteger.TEN);
+        
+        // Integer & Integer => Integer
+        asserter.assertExpression("I2 + 2", new Integer(4));
+        asserter.assertExpression("I2 * 2", new Integer(4));
+        asserter.assertExpression("I2 - 2", new Integer(0));
+        asserter.assertExpression("I2 / 2", new Integer(1));
+        
+        // Integer & Long => Long
+        asserter.assertExpression("I2 * L2", new Long(4));
+        asserter.assertExpression("I2 / L2", new Long(1));
+
+        // Long & Long => Long
+        asserter.assertExpression("L2 + 3", new Long(5));
+        asserter.assertExpression("L2 + L3", new Long(5));
+        asserter.assertExpression("L2 / L2", new Long(1));
+        asserter.assertExpression("L2 / 2", new Long(1));
+        
+        // BigInteger
+        asserter.assertExpression("B10 / 10", BigInteger.ONE);
+        asserter.assertExpression("B10 / I2", new BigInteger("5"));
+        asserter.assertExpression("B10 / L2", new BigInteger("5"));
+    }
+    
     /**
      *
      * if silent, all arith exception return 0.0


Reply via email to