コード例 #1
0
        public void AddOperator()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Matrix b = MatrixVectorData.ArrangeMatrixB_4_4();

            // Act
            a.Add(b);

            // Assert
            Assert.AreEqual(-19.8, a.GetValue(0, 0));
            Assert.AreEqual(11.45, a.GetValue(1, 0));
            Assert.AreEqual(double.PositiveInfinity, a.GetValue(2, 0));
            Assert.AreEqual(double.NegativeInfinity, a.GetValue(3, 0));
            Assert.AreEqual(1.1, a.GetValue(0, 1));
            Assert.AreEqual(13.24, a.GetValue(1, 1));
            Assert.AreEqual(2.34, a.GetValue(2, 1));
            Assert.AreEqual(12, a.GetValue(3, 1));
            Assert.AreEqual(double.NaN, a.GetValue(0, 2));
            Assert.AreEqual(14.4, a.GetValue(1, 2));
            Assert.AreEqual(-6.93, a.GetValue(2, 2));
            Assert.AreEqual(double.NaN, a.GetValue(3, 2));
            Assert.AreEqual(double.NegativeInfinity, a.GetValue(0, 3));
            Assert.AreEqual(7.79, a.GetValue(1, 3));
            Assert.AreEqual(14, a.GetValue(2, 3));
            Assert.AreEqual(91.666666, a.GetValue(3, 3));
        }
コード例 #2
0
        public void MatrixMultiplication()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Matrix b = MatrixVectorData.ArrangeMatrixB_4_4();

            // Act
            Matrix c = Matrix.Multiplication(a, b, 1);

            // Assert
            Assert.AreEqual(154203.795, c.GetValue(0, 0));
            Assert.AreEqual(226.256, c.GetValue(0, 1));
            Assert.AreEqual(double.NaN, c.GetValue(0, 2));
            Assert.AreEqual(double.NegativeInfinity, c.GetValue(0, 3));
            Assert.AreEqual(59943.45, c.GetValue(1, 0));
            Assert.AreEqual(147.216, c.GetValue(1, 1));
            Assert.AreEqual(double.NaN, c.GetValue(1, 2));
            Assert.AreEqual(double.NegativeInfinity, c.GetValue(1, 3));
            Assert.AreEqual(double.NegativeInfinity, c.GetValue(2, 0));
            Assert.AreEqual(double.NaN, c.GetValue(2, 1));
            Assert.AreEqual(double.NaN, c.GetValue(2, 2));
            Assert.AreEqual(double.NegativeInfinity, c.GetValue(2, 3));
            Assert.AreEqual(double.NaN, c.GetValue(3, 0));
            Assert.AreEqual(double.NaN, c.GetValue(3, 1));
            Assert.AreEqual(double.NaN, c.GetValue(3, 2));
            Assert.AreEqual(double.NaN, c.GetValue(3, 3));
        }
コード例 #3
0
        public void AddMatrixStaticSameSize()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Matrix b = MatrixVectorData.ArrangeMatrixB_4_4();

            // Act
            Matrix c = Matrix.Add(a, b);

            // Assert
            Assert.AreEqual(c.GetValue(0, 0), -19.8);
            Assert.AreEqual(c.GetValue(1, 0), 11.45);
            Assert.AreEqual(c.GetValue(2, 0), double.PositiveInfinity);
            Assert.AreEqual(c.GetValue(3, 0), double.NegativeInfinity);
            Assert.AreEqual(c.GetValue(0, 1), 1.1);
            Assert.AreEqual(c.GetValue(1, 1), 13.24);
            Assert.AreEqual(c.GetValue(2, 1), 2.34);
            Assert.AreEqual(c.GetValue(3, 1), 12);
            Assert.AreEqual(c.GetValue(0, 2), double.NaN);
            Assert.AreEqual(c.GetValue(1, 2), 14.4);
            Assert.AreEqual(c.GetValue(2, 2), -6.93);
            Assert.AreEqual(c.GetValue(3, 2), double.NaN);
            Assert.AreEqual(c.GetValue(0, 3), double.NegativeInfinity);
            Assert.AreEqual(c.GetValue(1, 3), 7.79);
            Assert.AreEqual(c.GetValue(2, 3), 14);
            Assert.AreEqual(c.GetValue(3, 3), 91.666666);
        }
コード例 #4
0
        public void SubtractMatrixUnevenSize()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixD_3_3();
            Matrix b = MatrixVectorData.ArrangeMatrixB_4_4();

            // Act
            a.Subtract(b);
        }
コード例 #5
0
        public void DotProductTwo()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixB_4_4();
            Vector b = MatrixVectorData.ArrangeVectorC_4_Row();

            // Act
            Vector c = Matrix.DotProduct(b, a);

            // Assert
            Assert.AreEqual(36000379.0275, c.GetValue(0));
            Assert.AreEqual(48157.036, c.GetValue(1));
            Assert.AreEqual(double.NaN, c.GetValue(2));
            Assert.AreEqual(double.NegativeInfinity, c.GetValue(3));
        }
コード例 #6
0
        public void DotProduct()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixB_4_4();
            Vector b = MatrixVectorData.ArrangeVectorA_4_Column();

            // Act
            Vector c = Matrix.DotProduct(a, b);

            // Assert
            Assert.AreEqual(double.NaN, c.GetValue(0));
            Assert.AreEqual(4625.139, c.GetValue(1));
            Assert.AreEqual(2620.19692, c.GetValue(2));
            Assert.AreEqual(433633.3838666, c.GetValue(3));
        }