package org.openlca.expressions;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.openlca.expressions.FormulaInterpreter;
public class ETest {
@Test
public void testSingleE() throws Exception {
FormulaInterpreter interpreter = new FormulaInterpreter();
assertEquals(Math.E, interpreter.eval("e"), 1e-16);
assertEquals(0, interpreter.eval("e-e"), 1e-16);
assertEquals(Math.E * 2, interpreter.eval("e+e"), 1e-16);
assertEquals(Math.E * 3, interpreter.eval("2*e+e"), 1e-16);
assertEquals(Math.E, interpreter.eval("E"), 1e-16);
assertEquals(0, interpreter.eval("E-E"), 1e-16);
assertEquals(Math.E * 2, interpreter.eval("E+E"), 1e-16);
assertEquals(Math.E * 3, interpreter.eval("2*E+E"), 1e-16);
}
@Test
public void testNoSignExp() throws Exception {
FormulaInterpreter interpreter = new FormulaInterpreter();
assertEquals(1, interpreter.eval("1E0"), 1e-16);
assertEquals(10, interpreter.eval("10E0"), 1e-16);
assertEquals(11, interpreter.eval("10E0+1"), 1e-16);
assertEquals(101, interpreter.eval("1E2+1"), 1e-16);
assertEquals(9, interpreter.eval("10E0-1"), 1e-16);
assertEquals(99, interpreter.eval("1E2-1"), 1e-16);
}
@Test
public void testPositiveExp() throws Exception {
FormulaInterpreter interpreter = new FormulaInterpreter();
assertEquals(1, interpreter.eval("1E+0"), 1e-16);
assertEquals(10, interpreter.eval("10E+0"), 1e-16);
assertEquals(11, interpreter.eval("10E0+1"), 1e-16);
assertEquals(101, interpreter.eval("1E+2+1"), 1e-16);
assertEquals(9, interpreter.eval("10E+0-1"), 1e-16);
assertEquals(99, interpreter.eval("1E+2-1"), 1e-16);
}
@Test
public void testNegativeExp() throws Exception {
FormulaInterpreter interpreter = new FormulaInterpreter();
assertEquals(1, interpreter.eval("1E-0"), 1e-16);
assertEquals(10, interpreter.eval("10E-0"), 1e-16);
assertEquals(11, interpreter.eval("10E-0+1"), 1e-16);
assertEquals(1.01, interpreter.eval("1E-2+1"), 1e-16);
assertEquals(9, interpreter.eval("10E-0-1"), 1e-16);
assertEquals(0.01, interpreter.eval("1E-2"), 1e-16);
}
}