public static void TestComplexFormulas()
{
ExpressionSolver solver = new ExpressionSolver();
{
var exp = solver.SymbolicateExpression("sin(1/(0.5*x))","x");
var x = 21.0;
exp.SetVariable("x",x);
AssertSameValue(exp.Evaluate(),System.Math.Sin(1/(0.5*x)) );
}
{
var exp = solver.SymbolicateExpression("(1+1)+.5");
AssertSameValue(exp.Evaluate(),2.5f);
}
{
var exp = solver.SymbolicateExpression("sin(2/(1-0.5*x))","x");
var x = 21.0;
exp.SetVariable("x",x);
AssertSameValue(exp.Evaluate(),System.Math.Sin(2/(1-0.5*x)) );
}
{
var exp = solver.SymbolicateExpression("sin((2/(1-0.5*x))/2)","x");
var x = 21.0;
exp.SetVariable("x",x);
AssertSameValue(exp.Evaluate(),System.Math.Sin((2/(1-0.5*x))/2));
}
{
var exp = solver.SymbolicateExpression("1/(1+sin((2/(1-0.5*x))/2))","x");
var x = 21.0;
exp.SetVariable("x",x);
AssertSameValue(exp.Evaluate(),1/(1+System.Math.Sin((2/(1-0.5*x))/2)));
}
{
var exp = solver.SymbolicateExpression(" (1-(3*(x/( (x+22)/x)-1*2*x))^0.5)/(x+1) ","x");
var x = -21.0;
exp.SetVariable("x",x);
AssertSameValue(exp.Evaluate(), (1-System.Math.Pow(3*(x/( (x+22)/x)-1*2*x),0.5))/(x+1) );
}
{
var exp = solver.SymbolicateExpression("(1+1/x)^x","x");
var x = 30000000.0;
exp.SetVariable("x",x);
AssertSameValue(exp.Evaluate(),System.Math.E);
}
}