mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
85 lines
2.1 KiB
Java
85 lines
2.1 KiB
Java
package cn.hutool.extra.expression;
|
|
|
|
import cn.hutool.core.lang.Dict;
|
|
import cn.hutool.extra.expression.engine.jexl.JexlEngine;
|
|
import cn.hutool.extra.expression.engine.jfireel.JfireELEngine;
|
|
import cn.hutool.extra.expression.engine.mvel.MvelEngine;
|
|
import cn.hutool.extra.expression.engine.rhino.RhinoEngine;
|
|
import cn.hutool.extra.expression.engine.spel.SpELEngine;
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
public class ExpressionUtilTest {
|
|
|
|
@Test
|
|
public void evalTest(){
|
|
final Dict dict = Dict.create()
|
|
.set("a", 100.3)
|
|
.set("b", 45)
|
|
.set("c", -199.100);
|
|
final Object eval = ExpressionUtil.eval("a-(b-c)", dict);
|
|
Assert.assertEquals(-143.8, (double)eval, 2);
|
|
}
|
|
|
|
@Test
|
|
public void jexlTest(){
|
|
ExpressionEngine engine = new JexlEngine();
|
|
|
|
final Dict dict = Dict.create()
|
|
.set("a", 100.3)
|
|
.set("b", 45)
|
|
.set("c", -199.100);
|
|
final Object eval = engine.eval("a-(b-c)", dict);
|
|
Assert.assertEquals(-143.8, (double)eval, 2);
|
|
}
|
|
|
|
@Test
|
|
public void mvelTest(){
|
|
ExpressionEngine engine = new MvelEngine();
|
|
|
|
final Dict dict = Dict.create()
|
|
.set("a", 100.3)
|
|
.set("b", 45)
|
|
.set("c", -199.100);
|
|
final Object eval = engine.eval("a-(b-c)", dict);
|
|
Assert.assertEquals(-143.8, (double)eval, 2);
|
|
}
|
|
|
|
@Test
|
|
public void jfireELTest(){
|
|
ExpressionEngine engine = new JfireELEngine();
|
|
|
|
final Dict dict = Dict.create()
|
|
.set("a", 100.3)
|
|
.set("b", 45)
|
|
.set("c", -199.100);
|
|
final Object eval = engine.eval("a-(b-c)", dict);
|
|
Assert.assertEquals(-143.8, (double)eval, 2);
|
|
}
|
|
|
|
@Test
|
|
public void spELTest(){
|
|
ExpressionEngine engine = new SpELEngine();
|
|
|
|
final Dict dict = Dict.create()
|
|
.set("a", 100.3)
|
|
.set("b", 45)
|
|
.set("c", -199.100);
|
|
final Object eval = engine.eval("#a-(#b-#c)", dict);
|
|
Assert.assertEquals(-143.8, (double)eval, 2);
|
|
}
|
|
|
|
@Test
|
|
public void rhinoTest(){
|
|
ExpressionEngine engine = new RhinoEngine();
|
|
|
|
final Dict dict = Dict.create()
|
|
.set("a", 100.3)
|
|
.set("b", 45)
|
|
.set("c", -199.100);
|
|
final Object eval = engine.eval("a-(b-c)", dict);
|
|
Assert.assertEquals(-143.8, (double)eval, 2);
|
|
}
|
|
|
|
}
|