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

GoldfarbIdnaniLargeSampleTest1() private method

private GoldfarbIdnaniLargeSampleTest1 ( ) : void
return void
        public void GoldfarbIdnaniLargeSampleTest1()
        {
            var Q = readMatrixFile(new StringReader(Resources.dmatFull));
            var AMat = readMatrixFile(new StringReader(Resources.constraintMatrix11_15));
            var bvec = readVectorFile(new StringReader(Resources.constraints11_14));

            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);

            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.049316494677822;
            double actualSol = value;

            double[] expected = 
            {
                0.74083116998144, // 2
                0.14799651298617, // 13
                0.11117231703249, // 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);
        }