public void ConstructorTest1()
{
var f = new QuadraticObjectiveFunction("a + b = 0");
var constraints1 = new[]
{
new LinearConstraint(f, "0.0732 * a + 0.0799 * b = 0.098"),
new LinearConstraint(f, "a + b = 1"),
new LinearConstraint(f, "a >= 0"),
new LinearConstraint(f, "b >= 0"),
new LinearConstraint(f, "a >= 0.5")
};
var constraints2 = new[]
{
new LinearConstraint(f, "0.0732 * a + 0.0799 * b - 0.098 = 0"),
new LinearConstraint(f, "a + b -2 = -1"),
new LinearConstraint(f, "-a <= 0"),
new LinearConstraint(f, "-b <= 0"),
new LinearConstraint(f, "-a + 0.5 <= 0")
};
for (int i = 0; i < constraints1.Length; i++)
{
var c1 = constraints1[i];
var c2 = constraints2[i];
for (double a = -10; a < 10; a += 0.1)
{
for (double b = -10; b < 10; b += 0.1)
{
double[] x = { a, b };
double actual = c1.GetViolation(x);
double expected = c2.GetViolation(x);
Assert.AreEqual(expected, actual);
}
}
}
}