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

GoldfarbIdnaniLargeSampleTest2() private method

private GoldfarbIdnaniLargeSampleTest2 ( ) : void
return void
        public void GoldfarbIdnaniLargeSampleTest2()
        {
            var Q = readMatrixFile(new StringReader(Resources.dmatFull));
            var AMat = readMatrixFile(new StringReader(Resources.constraintMatrix11_15_2));
            var bvec = readVectorFile(new StringReader(Resources.constraints11_14_2));

            var dvec = new double[Q.GetLength(0)];
            double[] b = new double[bvec.Length];
            bvec.CopyTo(b, 0);

            bool psd = Q.IsPositiveDefinite();
            Assert.IsTrue(psd);

            GoldfarbIdnani gfI = new GoldfarbIdnani(Q, dvec, AMat, b, 2);

            for (int i = 0; i < gfI.ConstraintTolerances.Length; i++)
                Assert.AreEqual(LinearConstraint.DefaultTolerance, gfI.ConstraintTolerances[i]);

            bool success = gfI.Minimize();

            Assert.IsTrue(success);

            double[] soln = gfI.Solution;
            double value = Math.Sqrt(Matrix.Multiply(Matrix.Multiply(soln, Q), soln.Transpose())[0]);

            double expectedSol = 0.048224950997808;
            double actualSol = value;

            double[] expected = 
            {
                0.41144782323407, // 2
                0.27310552838116, // 13
                0.31544664838498, // 14
            };

            double[] actual =
            {
                soln[1], soln[12], soln[13]
            };

            Assert.AreEqual(expectedSol, actualSol, 1e-8);
            for (int i = 0; i < expected.Length; i++)
                Assert.AreEqual(expected[i], actual[i], 1e-5);
        }