public void MatrixMultiplyMatrixMatrixInvalidDimensions(IMatrixArithmetic arithmetic) { Matrix.Arithmetic = arithmetic; Matrix testMatrix1 = Setup.GetTestMatrix1(); Matrix testMatrix2 = Setup.GetTestMatrix2(); Assert.Throws <InvalidMatrixDimensionsException>(() => Matrix.Multiply(testMatrix1, testMatrix2)); Matrix m1 = new Matrix(testMatrix1); Assert.Throws <InvalidMatrixDimensionsException>(() => testMatrix1 * testMatrix2); Assert.Throws <InvalidMatrixDimensionsException>(() => testMatrix1.Multiply(testMatrix2)); }
public void MatrixAddMatrixMatrixInvalidDimensions(IMatrixArithmetic arithmetic) { Matrix.Arithmetic = arithmetic; Matrix testMatrix1 = Setup.GetTestMatrix1(); Matrix testMatrix2 = Setup.GetTestMatrix2(); Matrix testMatrix3 = Setup.GetTestMatrix3(); Assert.Throws <InvalidMatrixDimensionsException>(() => Matrix.Add(testMatrix1, testMatrix3)); Matrix m1 = new Matrix(testMatrix1); Assert.Throws <InvalidMatrixDimensionsException>(() => m1.Add(testMatrix3)); Assert.Throws <InvalidMatrixDimensionsException>(() => testMatrix1 + testMatrix3); }
public void MatrixMultiplyTransposeByMatrixMatrix() { Matrix m1 = Matrix.Transpose(Setup.GetTestMatrix1()); Matrix m2 = Setup.GetTestMatrix2(); Matrix expected = m1 * m2; Matrix test1 = Matrix.MultiplyTransposeBy(Setup.GetTestMatrix1(), m2); Matrix test2 = Setup.GetTestMatrix1(); test2.MultiplyTransposeBy(Setup.GetTestMatrix2()); Assert.True(test1 == expected); Assert.True(test2 == expected); }
public void MatrixSubtractMatrixMatrix(IMatrixArithmetic arithmetic) { Matrix.Arithmetic = arithmetic; Matrix testMatrix1 = Setup.GetTestMatrix1(); Matrix testMatrix2 = Setup.GetTestMatrix2(); Matrix m1 = Matrix.Subtract(testMatrix2, testMatrix1); Matrix m2 = new Matrix(testMatrix2); m2.Subtract(testMatrix1); Matrix m3 = testMatrix2 - testMatrix1; Matrix expected = new Matrix(new double[, ] { { 6.0, 6.0, 6.0 }, { 6.0, 6.0, 6.0 } }); Assert.Equal(expected, m1); Assert.Equal(expected, m2); Assert.Equal(expected, m3); }
public void MatrixAddMatrixMatrix(IMatrixArithmetic arithmetic) { Matrix.Arithmetic = arithmetic; Matrix testMatrix1 = Setup.GetTestMatrix1(); Matrix testMatrix2 = Setup.GetTestMatrix2(); Matrix m1 = Matrix.Add(testMatrix1, testMatrix2); Matrix m2 = new Matrix(testMatrix1); m2.Add(testMatrix2); Matrix m3 = testMatrix1 + testMatrix2; Matrix expected = new Matrix(new double[, ] { { 8.0, 10.0, 12.0 }, { 14.0, 16.0, 18.0 } }); Assert.Equal(expected, m1); Assert.Equal(expected, m2); Assert.Equal(expected, m3); }