Accord.Tests.Math.JaggedSingularValueDecompositionTest.JaggedSingularValueDecompositionConstructorTest6 C# (CSharp) Method

JaggedSingularValueDecompositionConstructorTest6() private method

private JaggedSingularValueDecompositionConstructorTest6 ( ) : void
return void
        public void JaggedSingularValueDecompositionConstructorTest6()
        {
            // Test using SVD assumption auto-correction feature in place

            double[][] value1 =
            {
                new double[] { 2.5,  2.4 },
                new double[] { 0.5,  0.7 },
                new double[] { 2.2,  2.9 },
                new double[] { 1.9,  2.2 },
                new double[] { 3.1,  3.0 },
                new double[] { 2.3,  2.7 },
                new double[] { 2.0,  1.6 },
                new double[] { 1.0,  1.1 },
                new double[] { 1.5,  1.6 },
                new double[] { 1.1,  0.9 }
            };

            var value2 = value1.Transpose();

            var cvalue1 = value1.Copy();
            var cvalue2 = value2.Copy();

            var target1 = new JaggedSingularValueDecomposition(cvalue1, true, true, true, true);
            var target2 = new JaggedSingularValueDecomposition(cvalue2, true, true, true, true);

            Assert.IsFalse(value1.IsEqual(cvalue1, 1e-3));
            Assert.IsTrue(value2.IsEqual(cvalue2, 1e-3)); // due to auto-transpose

            Assert.IsTrue(target1.LeftSingularVectors.IsEqual(target2.RightSingularVectors));
            Assert.IsTrue(target1.RightSingularVectors.IsEqual(target2.LeftSingularVectors));
            Assert.IsTrue(target1.DiagonalMatrix.IsEqual(target2.DiagonalMatrix));
            Assert.IsTrue(Matrix.IsEqual(value1, target1.Reverse(), 1e-2));
            Assert.IsTrue(Matrix.IsEqual(value2, target2.Reverse(), 1e-2));
        }