public void InverseMatrixTestMethod()
        {
            double[,] firstMatrix = new double[, ] {
                { 1, 2, 0 }, { 3, 2, 1 }, { 0, 1, 2 }
            };

            MatrixOperations.Matrix.MatrixOperations matrixObject = new MatrixOperations.Matrix.MatrixOperations();

            double[,] result = matrixObject.InverseMatrix(firstMatrix);

            Console.WriteLine("It is a source matrix");
            matrixObject.ShowMatrix(firstMatrix);


            Console.WriteLine("It is an inverse matrix");
            matrixObject.ShowMatrix(result);
            //-0.33 1.33 0.00
            //1.33  -0.44 0.11
            //0.00  0.11  0.89


            Assert.AreEqual(-0.33, result[0, 0], 0.1);
            Assert.AreEqual(1.33, result[0, 1], 0.1);
            Assert.AreEqual(0.00, result[0, 2], 0.1);

            Assert.AreEqual(1.33, result[1, 0], 0.1);
            Assert.AreEqual(-0.44, result[1, 1], 0.1);
            Assert.AreEqual(0.11, result[1, 2], 0.1);

            Assert.AreEqual(0.00, result[2, 0], 0.1);
            Assert.AreEqual(0.11, result[2, 1], 0.1);
            Assert.AreEqual(0.89, result[2, 2], 0.1);
        }
        public void TransposeMatrixTestMethod()
        {
            double[,] firstMatrix = new double[, ] {
                { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }
            };

            MatrixOperations.Matrix.MatrixOperations matrixObject = new MatrixOperations.Matrix.MatrixOperations(firstMatrix);

            double[,] result = matrixObject.Transpose(firstMatrix);

            Console.WriteLine("The source matrix");
            matrixObject.ShowMatrix(firstMatrix);

            Console.WriteLine("The transposed matrix");
            matrixObject.ShowMatrix(result);

            Assert.AreEqual(1, result[0, 0]);
            Assert.AreEqual(4, result[0, 1]);
            Assert.AreEqual(7, result[0, 2]);
            Assert.AreEqual(2, result[1, 0]);
            Assert.AreEqual(5, result[1, 1]);
            Assert.AreEqual(8, result[1, 2]);
            Assert.AreEqual(3, result[2, 0]);
            Assert.AreEqual(6, result[2, 1]);
            Assert.AreEqual(9, result[2, 2]);

            //1 4 7
            //2 5 8
            //3 6 9
        }
        public void DeterminantCalculationTestMethod()
        {
            double[,] firstMatrix = new double[, ] {
                { 1, 2, 0 }, { 3, 2, 1 }, { 0, 1, 2 }
            };

            MatrixOperations.Matrix.MatrixOperations matrixObject = new MatrixOperations.Matrix.MatrixOperations();

            double result = matrixObject.Determinant(firstMatrix);

            Assert.AreEqual(-9, result);

            Console.WriteLine(" deteminant = {0}", result);
        }
        public void MultiplyMatriciesTestMethod()
        {
            double[,] firstMatrix = new double[, ] {
                { 1, 1, 1, 1 }, { 2, 2, 2, 2 }, { 3, 3, 3, 3 }
            };
            double[,] secondMatrix = new double[, ] {
                { 4, 5, 1 }, { 4, 5, 1 }, { 4, 5, 1 }, { 4, 5, 1 }
            };


            MatrixOperations.Matrix.MatrixOperations matrixObject = new MatrixOperations.Matrix.MatrixOperations();

            double[,] result = matrixObject.Multiply(firstMatrix, secondMatrix);

            for (int i = 0; i < result.GetLength(0); i++)
            {
                for (int j = 0; j < result.GetLength(1); j++)
                {
                    Console.Write("{0} ", result[i, j]);
                }

                Console.WriteLine(Environment.NewLine);
            }

            matrixObject.ShowMatrix(result);

            Assert.AreEqual(16, result[0, 0]);
            Assert.AreEqual(20, result[0, 1]);
            Assert.AreEqual(4, result[0, 2]);
            Assert.AreEqual(32, result[1, 0]);
            Assert.AreEqual(40, result[1, 1]);
            Assert.AreEqual(8, result[1, 2]);
            Assert.AreEqual(48, result[2, 0]);
            Assert.AreEqual(60, result[2, 1]);
            Assert.AreEqual(12, result[2, 2]);
            //16 20 4
            //32 40 8
            //48 60 12
        }