Accord.Tests.Math.GoldfarbIdnaniTest.GoldfarbIdnaniConstructorTest11 C# (CSharp) Method

GoldfarbIdnaniConstructorTest11() private method

private GoldfarbIdnaniConstructorTest11 ( ) : void
return void
        public void GoldfarbIdnaniConstructorTest11()
        {
            // http://www.wolframalpha.com/input/?i=minimize+f%28x%2Cy%29+%3D+2x%5E2+-+xy+%2B+4y%5E2+-+5x+-+6y+-+100%2C+s.t.+x+-+y++%3D+++5%2C+x++%3E%3D++10

            double x = 0, y = 0;

            var f = new QuadraticObjectiveFunction(() => 2 * (x * x) - (x * y) + 4 * (y * y) - 5 * x - 6 * y + 100);

            List<LinearConstraint> constraints = new List<LinearConstraint>();
            constraints.Add(new LinearConstraint(f, () => x - y == 5));
            constraints.Add(new LinearConstraint(f, () => x >= 10));

            GoldfarbIdnani solver = new GoldfarbIdnani(f, constraints);

            double[,] Q = 
            {   
                { +2*2,  -1   }, 
                {   -1,  +4*2 },
            };

            double[] d = { -5, -6 };

            var actualQ = f.QuadraticTerms;
            var actuald = f.LinearTerms;

            Assert.IsTrue(Q.IsEqual(actualQ));
            Assert.IsTrue(d.IsEqual(actuald));
            Assert.AreEqual(100, f.ConstantTerm);

            bool success = solver.Minimize();
            Assert.AreEqual(270, solver.Value);
            Assert.IsTrue(success);
        }