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

RunTest2() private method

private RunTest2 ( ) : void
return void
        public void RunTest2()
        {
            // Maximize f(x) = x² + 4y² -8x -16y
            //
            //      s.t. x + y <= 5
            //               x <= 3
            //             x,y >= 0
            //

            double[,] D = 
            {
                { 2, 0 }, // 1x²
                { 0, 8 }, // 4y²
            };

            double[] d = { -8, -16 };


            double[,] A = 
            {
                { 1, 1 }, // x + y
                { 1, 0 }, // x
            };

            double[] b = { 5, 3 };


            GoldfarbIdnani target = new GoldfarbIdnani(D, d.Multiply(-1), A.Transpose(), b);

            Assert.IsTrue(target.Minimize());
            double actual = target.Value;
            Assert.AreEqual(64.8, actual, 1e-10);
            Assert.IsFalse(double.IsNaN(actual));
            Assert.AreEqual(2, target.Iterations);
            Assert.AreEqual(0, target.Deletions);

            Assert.AreEqual(4.8, target.Solution[0], 1e-6);
            Assert.AreEqual(0.2, target.Solution[1], 1e-6);

            Assert.AreEqual(17.6, target.Lagrangian[0]);
            Assert.AreEqual(0.00, target.Lagrangian[1]);

            foreach (double v in target.Lagrangian)
                Assert.IsFalse(double.IsNaN(v));

            foreach (double v in target.Solution)
                Assert.IsFalse(double.IsNaN(v));
        }