public void ConstructorTest7()
{
/// This problem is taken from Fletcher's book Practical Methods of
/// Optimization and has the equation number (14.4.2).
var function = new NonlinearObjectiveFunction(3, x => x[2]);
NonlinearConstraint[] constraints =
{
new NonlinearConstraint(3, x=> 5.0 * x[0] - x[1] + x[2]),
new NonlinearConstraint(3, x => x[2] - x[0] * x[0] - x[1] * x[1] - 4.0 * x[1]),
new NonlinearConstraint(3, x => x[2] - 5.0 * x[0] - x[1]),
};
Cobyla cobyla = new Cobyla(function, constraints);
Assert.IsTrue(cobyla.Minimize());
double minimum = cobyla.Value;
double[] solution = cobyla.Solution;
Assert.AreEqual(-3, minimum, 1e-5);
Assert.AreEqual(0.0, solution[0], 1e-5);
Assert.AreEqual(-3.0, solution[1], 1e-5);
Assert.AreEqual(-3.0, solution[2], 1e-5);
double expectedMinimum = function.Function(cobyla.Solution);
Assert.AreEqual(expectedMinimum, minimum);
}