Search in sources :

Example 46 with JexlContext

use of org.apache.commons.jexl2.JexlContext in project shifu by ShifuML.

the class JexlTest method testJavaExpressionString.

@Test
public void testJavaExpressionString() {
    JexlEngine jexl = new JexlEngine();
    String jexlExp = "name == \"user_a\"";
    Expression e = jexl.createExpression(jexlExp);
    JexlContext jc = new MapContext();
    jc.set("name", "user_a");
    // Now evaluate the expression, getting the result
    Boolean isEqual = (Boolean) e.evaluate(jc);
    Assert.assertTrue(isEqual);
    jc.set("name", "user_b");
    isEqual = (Boolean) e.evaluate(jc);
    Assert.assertFalse(isEqual);
}
Also used : JexlEngine(org.apache.commons.jexl2.JexlEngine) Expression(org.apache.commons.jexl2.Expression) JexlContext(org.apache.commons.jexl2.JexlContext) MapContext(org.apache.commons.jexl2.MapContext) Test(org.testng.annotations.Test)

Example 47 with JexlContext

use of org.apache.commons.jexl2.JexlContext in project shifu by ShifuML.

the class JexlTest method testJavaSubString.

@Test
public void testJavaSubString() {
    JexlEngine jexl = new JexlEngine();
    String jexlExp = "str.substring(0, 1) == \"a\" ";
    Expression e = jexl.createExpression(jexlExp);
    JexlContext jc = new MapContext();
    jc.set("str", "a1");
    Assert.assertEquals(Boolean.TRUE, e.evaluate(jc));
}
Also used : JexlEngine(org.apache.commons.jexl2.JexlEngine) Expression(org.apache.commons.jexl2.Expression) JexlContext(org.apache.commons.jexl2.JexlContext) MapContext(org.apache.commons.jexl2.MapContext) Test(org.testng.annotations.Test)

Example 48 with JexlContext

use of org.apache.commons.jexl2.JexlContext in project shifu by ShifuML.

the class JexlTest method testDerived.

@Test
public void testDerived() {
    JexlEngine jexl = new JexlEngine();
    String jexlExp = "(0.00472217*vbase_t1_model_V2R1 + 0.00341543*vbase_t1_model_V2BM)/0.00813760";
    Expression e = jexl.createExpression(jexlExp);
    JexlContext jc = new MapContext();
    jc.set("NumberUtils", new NumberUtils());
    jc.set("vbase_t1_model_V2R1", 238);
    jc.set("vbase_t1_model_V2BM", 289);
    Assert.assertEquals(259.40519686394026, e.evaluate(jc));
}
Also used : JexlEngine(org.apache.commons.jexl2.JexlEngine) Expression(org.apache.commons.jexl2.Expression) JexlContext(org.apache.commons.jexl2.JexlContext) MapContext(org.apache.commons.jexl2.MapContext) NumberUtils(org.apache.commons.lang.math.NumberUtils) Test(org.testng.annotations.Test)

Example 49 with JexlContext

use of org.apache.commons.jexl2.JexlContext in project shifu by ShifuML.

the class JexlTest method testJavaCompare.

@Test
public void testJavaCompare() {
    JexlEngine jexl = new JexlEngine();
    String jexlExp = "time_window == 'DEV' and live_xm_send_amount <= 10000.0";
    Expression e = jexl.createExpression(jexlExp);
    JexlContext jc = new MapContext();
    jc.set("time_window", "DEV");
    jc.set("live_xm_send_amount", "50");
    Assert.assertEquals(Boolean.TRUE, e.evaluate(jc));
}
Also used : JexlEngine(org.apache.commons.jexl2.JexlEngine) Expression(org.apache.commons.jexl2.Expression) JexlContext(org.apache.commons.jexl2.JexlContext) MapContext(org.apache.commons.jexl2.MapContext) Test(org.testng.annotations.Test)

Example 50 with JexlContext

use of org.apache.commons.jexl2.JexlContext in project shifu by ShifuML.

the class JexlTest method testJavaDouble.

@Test
public void testJavaDouble() {
    JexlEngine jexl = new JexlEngine();
    String jexlExp = "columnA + columnB";
    Expression e = jexl.createExpression(jexlExp);
    JexlContext jc = new MapContext();
    // Now evaluate the expression, getting the result
    Integer val = (Integer) e.evaluate(jc);
    Assert.assertEquals(val, Integer.valueOf(0));
    jc.set("columnA", "0.3");
    double value = (Double) e.evaluate(jc);
    Assert.assertEquals(0.3, value);
    jc.set("columnB", "0.7");
    value = (Double) e.evaluate(jc);
    Assert.assertEquals(value, 1.0);
}
Also used : JexlEngine(org.apache.commons.jexl2.JexlEngine) Expression(org.apache.commons.jexl2.Expression) JexlContext(org.apache.commons.jexl2.JexlContext) MapContext(org.apache.commons.jexl2.MapContext) Test(org.testng.annotations.Test)

Aggregations

JexlContext (org.apache.commons.jexl2.JexlContext)31 Expression (org.apache.commons.jexl2.Expression)25 MapContext (org.apache.commons.jexl2.MapContext)23 JexlContext (org.apache.commons.jexl3.JexlContext)21 JexlEngine (org.apache.commons.jexl2.JexlEngine)20 MapContext (org.apache.commons.jexl3.MapContext)17 Test (org.testng.annotations.Test)13 HashMap (java.util.HashMap)5 Map (java.util.Map)4 ArrayList (java.util.ArrayList)3 JexlException (org.apache.commons.jexl2.JexlException)3 ObjectContext (org.apache.commons.jexl2.ObjectContext)3 IOException (java.io.IOException)2 ReadonlyContext (org.apache.commons.jexl2.ReadonlyContext)2 JexlScript (org.apache.commons.jexl3.JexlScript)2 NumberUtils (org.apache.commons.lang.math.NumberUtils)2 FloatWritable (org.apache.hadoop.io.FloatWritable)2 IntWritable (org.apache.hadoop.io.IntWritable)2 Text (org.apache.hadoop.io.Text)2 VersionMismatchException (org.apache.hadoop.io.VersionMismatchException)2