public void FunctionTest()
{
double x = 0;
double y = 0;
Func<double> expected = () => -2 * x * x + x * y - y * y + 5 * y;
var actual = new QuadraticObjectiveFunction("-2x² + xy - y² + 5y");
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
x = (i - 5) / 10.0;
y = (j - 5) / 10.0;
double a = actual.Function(new[] { x, y });
double e = expected();
Assert.AreEqual(e, a, 1e-10);
Assert.IsFalse(Double.IsNaN(a));
Assert.IsFalse(Double.IsNaN(e));
}
}
}