public Func<double, double> Compile(string function) { var parser = new MathParser(); Expression expression = parser.Parse(function); var paras = new ParameterExpression[] { Expression.Parameter(typeof(double), "x") }; return Expression.Lambda<Func<double, double>>(expression, paras).Compile(); }
public void ParseTest6() { // Arrange var mathParser = new MathParser('.'); var input = "2^2+4"; var output = 8d; // Act var actual = mathParser.Parse(input); // Assert Assert.AreEqual(output, actual); }
public void ParseTest7() { // Arrange var mathParser = new MathParser('.'); var input = "5*5+5*3-5*5-5*3"; var output = 0d; // Act var actual = mathParser.Parse(input); // Assert Assert.AreEqual(output, actual); }
public void ParseTest16() { // Arrange var mathParser = new MathParser('.'); var input = "-1*(-(+(5*(+5)+5*(+3)-5*(+5)-5*(-3))))"; var output = 30D; // Act var actual = mathParser.Parse(input); // Assert Assert.AreEqual(output, actual); }
public void ParseTest15() { // Arrange var mathParser = new MathParser('.'); var input = "abs(-2)+exp(1)+(2)Log(4)+√(4)"; var output = 2 + Math.E + 2 + 2; // Act var actual = mathParser.Parse(input); // Assert Assert.AreEqual(output, actual); }
public void ParseTest14() { // Arrange var mathParser = new MathParser('.'); var input = "th(ch(sh(tg(cos(sin(100))))))"; var output = 0.76165811649275783D; // Act var actual = mathParser.Parse(input, false); // Assert Assert.AreEqual(output, actual); }
public void ParseTest13() { // Arrange var mathParser = new MathParser('.'); var input = "sin(cos(tg(sh(ch(th(100))))))"; var output = 0.017452402397444194D; // Act var actual = mathParser.Parse(input, false); // Assert Assert.AreEqual(output, actual); }
public void ParseTest12() { // Arrange var mathParser = new MathParser('.'); var input = "pi*1+e*2+.95"; var output = 9.5281563105078888d; // Act var actual = mathParser.Parse(input); // Assert Assert.AreEqual(output, actual); }
public void ParseTest8() { // Arrange var mathParser = new MathParser('.'); var input = "-5*(+5)+5*(-3)-5*(+5)-5*(-3)"; var output = -50d; // Act var actual = mathParser.Parse(input); // Assert Assert.AreEqual(output, actual); }