예제 #1
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);
        }
예제 #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 Transpose()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a = a.Transpose();

            // Assert
            Assert.AreEqual(4.2, a.GetValue(0, 0));
            Assert.AreEqual(1.1, a.GetValue(1, 0));
            Assert.AreEqual(6.8, a.GetValue(2, 0));
            Assert.AreEqual(17.14, a.GetValue(3, 0));
            Assert.AreEqual(8, a.GetValue(0, 1));
            Assert.AreEqual(9, a.GetValue(1, 1));
            Assert.AreEqual(12.4, a.GetValue(2, 1));
            Assert.AreEqual(6.67, a.GetValue(3, 1));
            Assert.AreEqual(double.PositiveInfinity, a.GetValue(0, 2));
            Assert.AreEqual(0, a.GetValue(1, 2));
            Assert.AreEqual(-7, a.GetValue(2, 2));
            Assert.AreEqual(14, a.GetValue(3, 2));
            Assert.AreEqual(double.NegativeInfinity, a.GetValue(0, 3));
            Assert.AreEqual(0, a.GetValue(1, 3));
            Assert.AreEqual(double.NaN, a.GetValue(2, 3));
            Assert.AreEqual(85, a.GetValue(3, 3));
        }
예제 #4
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));
        }
예제 #5
0
        public void AddMatrixStaticJNull()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            Matrix result = Matrix.Add(a, null);
        }
예제 #6
0
        public void SetValueOutOfIndex()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a.SetValue(50, 5, 0);
        }
예제 #7
0
        public void SetColumnNull()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a.SetColumn((Vector)null, 1);
        }
예제 #8
0
        public void GetValueOutOfBounds()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a.GetValue(5, 5);
        }
예제 #9
0
        public void GetValueNegativeIndex()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a.GetValue(0, -1);
        }
예제 #10
0
        public void GetRowNegativeIndex()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a.GetRow(-1);
        }
예제 #11
0
        public void DotProductTwoNullVector()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            Vector c = Matrix.DotProduct(null, a);
        }
예제 #12
0
        public void GetRowOutOfBounds()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a.GetRow(5);
        }
예제 #13
0
        public void AddMatrixINull()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a.Add(null);
        }
예제 #14
0
        public void SetValueNegativeIndex()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            a.SetValue(-1, 0, 2);
        }
예제 #15
0
        public void DotProductIncorrectSize()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Vector b = MatrixVectorData.ArrangeVectorB_3_Column();

            // Act
            Vector c = Matrix.DotProduct(a, b);
        }
예제 #16
0
        public void DotProductIncorrectAlignment()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Vector b = MatrixVectorData.ArrangeVectorC_4_Row();

            // Act
            Vector c = Matrix.DotProduct(a, b);
        }
예제 #17
0
        public void AddMatrixStaticUnevenSizes()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixC_4_2();
            Matrix c = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            Matrix result = Matrix.Add(a, c);
        }
예제 #18
0
        public void DotProductTwoIncorrectAlignment()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Vector b = MatrixVectorData.ArrangeVectorA_4_Column();

            // Act
            Vector c = Matrix.DotProduct(b, a);
        }
예제 #19
0
        public void SetColumnUnevenSize()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Vector b = MatrixVectorData.ArrangeVectorB_3_Column();

            // Act
            a.SetColumn(b, 1);
        }
예제 #20
0
        public void DivideOperator()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Matrix b = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            var c = a / b;
        }
예제 #21
0
        public void DotProductTwoIncorrectSize()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Vector b = MatrixVectorData.ArrangeVectorD_3_Row();

            // Act
            Vector c = Matrix.DotProduct(b, a);
        }
예제 #22
0
        public void AddMatrixUnevenSizes()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Matrix c = MatrixVectorData.ArrangeMatrixC_4_2();

            // Act
            a.Add(c);
        }
예제 #23
0
        public void GetValue()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            double result = a.GetValue(3, 2);

            // Assert
            Assert.AreEqual(double.NaN, result);
        }
예제 #24
0
        public void GetRow()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            Vector result = a.GetRow(1);

            // Assert
            Assert.AreEqual(8, result.GetValue(0));
            Assert.AreEqual(9, result.GetValue(1));
            Assert.AreEqual(12.4, result.GetValue(2));
            Assert.AreEqual(6.67, result.GetValue(3));
        }
예제 #25
0
        public void GetColumn()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();

            // Act
            Vector result = a.GetColumn(0);

            // Assert
            Assert.AreEqual(4.2, result.GetValue(0));
            Assert.AreEqual(8, result.GetValue(1));
            Assert.AreEqual(double.PositiveInfinity, result.GetValue(2));
            Assert.AreEqual(double.NegativeInfinity, result.GetValue(3));
        }
예제 #26
0
        public void SetColumnVector()
        {
            // Arrange
            Matrix a = MatrixVectorData.ArrangeMatrixA_4_4();
            Vector b = MatrixVectorData.ArrangeVectorA_4_Column();

            // Act
            a.SetColumn(b, 0);

            // Assert
            Assert.AreEqual(46.7, a.GetValue(0, 0));
            Assert.AreEqual(1000, a.GetValue(1, 0));
            Assert.AreEqual(-.044, a.GetValue(2, 0));
            Assert.AreEqual(200.1, a.GetValue(3, 0));
        }