public void GoldfarbIdnaniParseGlobalizationTestBase()
{
// minimize 0.5x² + 0.2y² + 0.3xy s.t. 0.01x + 0.02y - 0.03 = 0 AND x + y = 100
// http://www.wolframalpha.com/input/?i=minimize+0.5x%C2%B2+%2B+0.2y%C2%B2+%2B+0.3xy+s.t.+0.01x+%2B+0.02y+-+0.03+%3D+0+AND+x+%2B+y+%3D+100
String strObjective = "0.5x² + 0.2y² + 0.3xy";
String[] strConstraints =
{
"0.01x + 0.02y - 0.03 = 0",
"x + y = 100"
};
QuadraticObjectiveFunction function = new QuadraticObjectiveFunction(strObjective);
LinearConstraintCollection cst = new LinearConstraintCollection();
foreach (var tmpCst in strConstraints)
cst.Add(new LinearConstraint(function, tmpCst));
var classSolver = new Accord.Math.Optimization.GoldfarbIdnani(function, cst);
bool status = classSolver.Minimize();
double result = classSolver.Value;
Assert.IsTrue(status);
Assert.AreEqual(15553.60, result, 1e-10);
}