------------------------------------------------------------
revno: 11621
committer: Lars Helge Overland <larshe...@gmail.com>
branch nick: dhis2
timestamp: Fri 2013-08-09 10:09:35 +0200
message:
  Enabling mathematical functions in expression indicators. This will allow for 
more advanced indicator expressions.
modified:
  
dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java
  
dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/MathUtilsTest.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to 
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java	2013-07-17 19:40:31 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/MathUtils.java	2013-08-09 08:09:35 +0000
@@ -69,7 +69,8 @@
         final String expression = leftSide + operator.getMathematicalOperator() + rightSide;
         
         final JEP parser = new JEP();
-        
+
+        parser.addStandardFunctions();
         parser.parseExpression( expression );
         
         return ( parser.getValue() == 1.0 );
@@ -84,7 +85,8 @@
     public static double calculateExpression( String expression )   
     {
         final JEP parser = new JEP();
-        
+
+        parser.addStandardFunctions();
         parser.parseExpression( expression );
         
         double result = parser.getValue();
@@ -101,7 +103,8 @@
     public static boolean expressionHasErrors( String expression )
     {
         final JEP parser = new JEP();
-        
+
+        parser.addStandardFunctions();
         parser.parseExpression( expression );
         
         return parser.hasError();
@@ -117,7 +120,8 @@
     public static String getExpressionErrorInfo( String expression )
     {
         final JEP parser = new JEP();
-        
+
+        parser.addStandardFunctions();
         parser.parseExpression( expression );
         
         return parser.getErrorInfo();

=== modified file 'dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/MathUtilsTest.java'
--- dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/MathUtilsTest.java	2013-07-17 19:40:31 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/test/java/org/hisp/dhis/system/util/MathUtilsTest.java	2013-08-09 08:09:35 +0000
@@ -253,4 +253,14 @@
         assertEquals( -0.43, MathUtils.getRounded( -0.43123 ), 0.01 );
         assertEquals( -10, MathUtils.getRounded( -10.00 ), 0.01 );        
     }
+    
+    @Test
+    public void testCalculateExpression()
+    {
+        assertEquals( 3d, MathUtils.calculateExpression( "1+2" ), 0.01 );
+        assertEquals( 3d, MathUtils.calculateExpression( "abs(3)" ), 0.01 );
+        assertEquals( 3d, MathUtils.calculateExpression( "abs(-3)" ), 0.01 );
+        assertEquals( 3d, MathUtils.calculateExpression( "abs(3-6)" ), 0.01 );
+        assertEquals( 5d, MathUtils.calculateExpression( "sqrt(25)" ), 0.01 );
+    }
 }

_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to     : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp

Reply via email to