コード例 #1
0
        public void MultiplyTest()
        {
            QuadMatrix mtx1 = new QuadMatrix(new double[][]
            {
                new double[] { -2, 1 },
                new double[] { 1, 2 }
            });
            QuadMatrix mtx2 = new QuadMatrix(new double[][]
            {
                new double[] { 4, 3 },
                new double[] { -2, 0 }
            });

            QuadMatrix mtx1Exp = new QuadMatrix(new double[][]
            {
                new double[] { -10, -6 },
                new double[] { 0, 3 }
            });
            QuadMatrix mtx2Exp = new QuadMatrix(new double[][]
            {
                new double[] { 4, 3 },
                new double[] { -2, 0 }
            });

            mtx1.Multiply(mtx2);

            Assert.AreEqual(mtx1, mtx1Exp);
            Assert.AreEqual(mtx2, mtx2Exp);
        }
コード例 #2
0
        public void AddTest()
        {
            QuadMatrix mtx1 = new QuadMatrix(new double[][]
            {
                new double[] { 0, 1 },
                new double[] { 1, 2 }
            });
            QuadMatrix mtx2 = new QuadMatrix(new double[][]
            {
                new double[] { 3, -4 },
                new double[] { 5, -6 }
            });

            QuadMatrix mtx1Expected = new QuadMatrix(new double[][]
            {
                new double[] { 3, -3 },
                new double[] { 6, -4 }
            });
            QuadMatrix mtx2Expected = new QuadMatrix(new double[][]
            {
                new double[] { 3, -4 },
                new double[] { 5, -6 }
            });

            mtx1.Add(mtx2);

            Assert.AreEqual(mtx1, mtx1Expected);
            Assert.AreEqual(mtx2, mtx2Expected);
        }
コード例 #3
0
        public void DeterminantTest()
        {
            QuadMatrix[] matrices = new QuadMatrix[]
            {
                new QuadMatrix(new double[][]
                {
                    new double[] { 0, 1 },
                    new double[] { 1, 2 }
                }),
                new QuadMatrix(new double[][]
                {
                    new double[] { 0, 0 },
                    new double[] { 1, 2 }
                }),
                new QuadMatrix(new double[][]
                {
                    new double[] { 4, 5 },
                    new double[] { 2, 3 }
                }),
                new QuadMatrix(new double[][]
                {
                    new double[] { 0, 1, 3 },
                    new double[] { 0, 2, -6 },
                    new double[] { -2, 3, 3 }
                })
            };
            double[] expected = new double[]
            {
                -1,
                0,
                2,
                24
            };

            for (int i = 0; i < matrices.Length; ++i)
            {
                Assert.AreEqual(expected[i], matrices[i].Determinant());
            }
        }
コード例 #4
0
        public void InverseTest()
        {
            QuadMatrix[] matrices = new QuadMatrix[]
            {
                new QuadMatrix(new double[][]
                {
                    new double[] { 3, 4 },
                    new double[] { -2, 0 }
                }),
                new QuadMatrix(new double[][]
                {
                    new double[] { 1, 4, -1 },
                    new double[] { 0, 3, 0 },
                    new double[] { -2, -4, 3 }
                })
            };
            QuadMatrix[] expected = new QuadMatrix[]
            {
                new QuadMatrix(new double[][]
                {
                    new double[] { 0, -0.5 },
                    new double[] { 0.25, 0.375 }
                }),
                new QuadMatrix(new double[][]
                {
                    new double[] { 3, -8.0 / 3, 1 },
                    new double[] { 0, 1.0 / 3, 0 },
                    new double[] { 2, -4.0 / 3, 1 }
                })
            };

            for (int i = 0; i < matrices.Length; ++i)
            {
                Assert.AreEqual(expected[i], QuadMatrix.Inversed(matrices[i]));
            }
        }