Accord.Tests.Math.LuDecompositionTest.SolveTransposeTest C# (CSharp) Method

SolveTransposeTest() private method

private SolveTransposeTest ( ) : void
return void
        public void SolveTransposeTest()
        {
            double[,] a = 
            {
                { 2, 1, 4 },
                { 6, 2, 2 },
                { 0, 1, 6 },
            };

            double[,] b =
            {
                { 1, 0, 7 },
                { 5, 2, 1 },
                { 1, 5, 2 },
            };

            double[,] expected =
            {
                 { 0.5062,    0.2813,    0.0875 },
                 { 0.1375,    1.1875,   -0.0750 },
                 { 0.8063,   -0.2188,    0.2875 },
            };

            Assert.IsTrue(Matrix.IsEqual(expected, new LuDecomposition(b, true).SolveTranspose(a), 1e-3));
            Assert.IsTrue(Matrix.IsEqual(expected, new JaggedLuDecomposition(b.ToJagged(), true).SolveTranspose(a.ToJagged()), 1e-3));

            var target = new LuDecomposition(b, true);
            var p = target.PivotPermutationVector;
            int[] idx = p.ArgSort();

            var r = target.LowerTriangularFactor.Dot(target.UpperTriangularFactor)
                .Submatrix(idx, null).Transpose();
            Assert.IsTrue(Matrix.IsEqual(b, r, 1e-3));
            Assert.IsTrue(Matrix.IsEqual(b.Transpose(), target.Reverse(), 1e-3));
            Assert.IsTrue(Matrix.IsEqual(b.Transpose(), new JaggedLuDecomposition(b.ToJagged(), true).Reverse(), 1e-3));
        }