public void MatrixOperationsJoinRowsIncorrectDimensions() { Matrix m1 = Setup.GetTestMatrix1(); Assert.Throws <InvalidMatrixDimensionsException>(() => m1.Join(Setup.GetTestMatrix3(), MatrixDimension.Rows)); Assert.Throws <InvalidMatrixDimensionsException>(() => Matrix.Join(Setup.GetTestMatrix1(), Setup.GetTestMatrix3(), MatrixDimension.Rows)); }
public void MatrixMultiplyTransposeByMatrixMatrixInvalidDimensions() { Matrix m1 = Setup.GetTestMatrix3(); Matrix m2 = Setup.GetTestMatrix1(); Assert.Throws <InvalidMatrixDimensionsException>(() => m1.MultiplyTransposeBy(m2)); Assert.Throws <InvalidMatrixDimensionsException>(() => Matrix.MultiplyTransposeBy(m1, m2)); }
public void MatrixElementOperationInvalidDimensions(IMatrixArithmetic arithmetic) { Matrix.Arithmetic = arithmetic; Matrix testMatrix1 = Setup.GetTestMatrix1(); Matrix testMatrix3 = Setup.GetTestMatrix3(); Assert.Throws <InvalidMatrixDimensionsException>(() => Matrix.ElementOperation(testMatrix1, testMatrix3, (a, b) => a + b)); Matrix m1 = new Matrix(testMatrix1); Assert.Throws <InvalidMatrixDimensionsException>(() => m1.ElementOperation(testMatrix3, (a, b) => a + b)); }
public void MatrixSubtractMatrixMatrixInvalidDimensions(IMatrixArithmetic arithmetic) { Matrix.Arithmetic = arithmetic; Matrix testMatrix1 = Setup.GetTestMatrix1(); Matrix testMatrix3 = Setup.GetTestMatrix3(); Assert.Throws <InvalidMatrixDimensionsException>(() => Matrix.Subtract(testMatrix1, testMatrix3)); Matrix m1 = new Matrix(testMatrix1); Assert.Throws <InvalidMatrixDimensionsException>(() => m1.Subtract(testMatrix3)); Assert.Throws <InvalidMatrixDimensionsException>(() => testMatrix1 - testMatrix3); }
public void MatrixMultiplyTransposeByMatrixSwapDimensionsMatrix() { Matrix m1 = Setup.GetTestMatrix3(); Matrix m2 = Setup.GetTestMatrix1(); Matrix expected = m1 * m2; Matrix test1 = Matrix.MultiplyTransposeBy(m1.Transpose(true), Setup.GetTestMatrix1()); Matrix test2 = Setup.GetTestMatrix3().Transpose(true); test2.MultiplyTransposeBy(Setup.GetTestMatrix1()); Assert.True(test1 == expected); Assert.True(test2 == expected); }
public void MatrixOperationsReduceRowsAddTwoColumns() { Matrix m1 = Setup.GetTestMatrix3(); m1.ReduceDimension(MatrixDimension.Rows, (x, y) => x + y); Matrix m2 = Matrix.ReduceDimension(Setup.GetTestMatrix3(), MatrixDimension.Rows, (x, y) => x + y); Matrix expected = new Matrix(new double[, ] { { 3.0 }, { 7.0 }, { 11.0 } }); Assert.True(m1 == expected); Assert.True(m2 == expected); }
public void MatrixOperationsReduceColumnsAddThreeRows() { Matrix m1 = Setup.GetTestMatrix3(); m1.ReduceDimension(MatrixDimension.Columns, (x, y) => x + y); Matrix m2 = Matrix.ReduceDimension(Setup.GetTestMatrix3(), MatrixDimension.Columns, (x, y) => x + y); Matrix expected = new Matrix(new double[, ] { { 9.0, 12.0 } }); Assert.True(m1 == expected); Assert.True(m2 == expected); }
public void MatrixRemoveRowsTwoInCentre() { Matrix m1 = Setup.GetTestMatrix3(); Matrix m2 = Matrix.RemoveRows(Setup.GetTestMatrix3(), 1, 2); m1.RemoveRows(1, 2); Matrix expected = new Matrix(new double[, ] { { 1.0, 2.0 } }); Assert.True(expected == m1); Assert.True(expected == m2); }
public void MatrixExtractRowsTwoRows() { Matrix m1 = Setup.GetTestMatrix3(); Matrix m2 = Matrix.ExtractRows(Setup.GetTestMatrix3(), 1, 2); m1.ExtractRows(1, 2); Matrix expected = new Matrix(new double[, ] { { 3.0, 4.0 }, { 5.0, 6.0 } }); Assert.True(expected == m1); Assert.True(expected == m2); }
public void MatrixMultipyMatrixMatrixFluent(IMatrixArithmetic arithmetic) { Matrix.Arithmetic = arithmetic; Matrix testMatrix1 = Setup.GetTestMatrix1(); Matrix testMatrix3 = Setup.GetTestMatrix3(); Matrix m1 = new Matrix(testMatrix1); Matrix m2 = new Matrix(new double[, ] { { 22.0, 28.0 }, { 49.0, 64.0 } }); Matrix expected = new Matrix(new double[, ] { { 1856.0, 2408.0 }, { 4214.0, 5468.0 } }); m1.Multiply(testMatrix3).Multiply(m2); Assert.Equal(expected, m1); }
public void MatrixMultiplyMatrixMatrix(IMatrixArithmetic arithmetic) { Matrix.Arithmetic = arithmetic; Matrix testMatrix1 = Setup.GetTestMatrix1(); Matrix testMatrix3 = Setup.GetTestMatrix3(); Matrix m1 = Matrix.Multiply(testMatrix1, testMatrix3); Matrix m2 = testMatrix1 * testMatrix3; Matrix m3 = new Matrix(testMatrix1); m3.Multiply(testMatrix3); Matrix expected = new Matrix(new double[, ] { { 22.0, 28.0 }, { 49.0, 64.0 } }); Assert.Equal(expected, m1); Assert.Equal(expected, m2); Assert.Equal(expected, m3); }