9 changed files with 915 additions and 15 deletions
@ -0,0 +1,226 @@ |
|||||
|
using MathNet.Numerics.LinearAlgebra; |
||||
|
using MathNet.Numerics.LinearAlgebra.Complex; |
||||
|
using NUnit.Framework; |
||||
|
|
||||
|
namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex |
||||
|
{ |
||||
|
#if NOSYSNUMERICS
|
||||
|
using Complex = Numerics.Complex; |
||||
|
#else
|
||||
|
using Complex = System.Numerics.Complex; |
||||
|
#endif
|
||||
|
|
||||
|
[TestFixture] |
||||
|
public class ReturnTypeTests |
||||
|
{ |
||||
|
readonly Vector<Complex> _vectorDense = Vector<Complex>.Build.Dense(3); |
||||
|
readonly Vector<Complex> _vectorSparse = Vector<Complex>.Build.Sparse(3); |
||||
|
readonly Matrix<Complex> _matrixDense = Matrix<Complex>.Build.Dense(3, 3); |
||||
|
readonly Matrix<Complex> _matrixSparse = Matrix<Complex>.Build.Sparse(3, 3); |
||||
|
readonly Matrix<Complex> _matrixDiagonal = Matrix<Complex>.Build.Diagonal(3, 3); |
||||
|
|
||||
|
[Test] |
||||
|
public void VerifyExamples() |
||||
|
{ |
||||
|
Assert.That(_vectorDense, Is.TypeOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse, Is.TypeOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense, Is.TypeOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse, Is.TypeOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal, Is.TypeOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Negate() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.Negate(), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.Negate(), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.Negate(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Negate(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Negate(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Conjugate() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.Conjugate(), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.Conjugate(), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.Conjugate(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Conjugate(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Conjugate(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Transpose() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Transpose(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Transpose(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Transpose(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void ConjugateTranspose() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.ConjugateTranspose(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.ConjugateTranspose(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.ConjugateTranspose(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Add() |
||||
|
{ |
||||
|
Assert.That(_vectorDense + _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense + _vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse + _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse + _vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense + _matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense + _matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Subtract() |
||||
|
{ |
||||
|
Assert.That(_vectorDense - _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense - _vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse - _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse - _vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense - _matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense - _matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void PointwiseMultiply() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.PointwiseMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense.PointwiseMultiply(_vectorSparse), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.PointwiseMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.PointwiseMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void MatrixMultiply() |
||||
|
{ |
||||
|
Assert.That(_matrixDense*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense*_matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense*_matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void MatrixVectorMultiply() |
||||
|
{ |
||||
|
Assert.That(_matrixDense*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDense*_vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse*_vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDiagonal*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDiagonal*_vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
|
||||
|
Assert.That(_vectorDense*_matrixDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense*_matrixSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_vectorDense*_matrixDiagonal, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixDiagonal, Is.InstanceOf<SparseVector>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Append() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Append(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Append(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Stack() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Stack(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Stack(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void DiagonalStack() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
// Special Case
|
||||
|
Assert.That(Matrix<Complex>.Build.DiagonalIdentity(2, 4).DiagonalStack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,222 @@ |
|||||
|
using MathNet.Numerics.LinearAlgebra; |
||||
|
using MathNet.Numerics.LinearAlgebra.Complex32; |
||||
|
using NUnit.Framework; |
||||
|
|
||||
|
namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 |
||||
|
{ |
||||
|
using Numerics; |
||||
|
|
||||
|
[TestFixture] |
||||
|
public class ReturnTypeTests |
||||
|
{ |
||||
|
readonly Vector<Complex32> _vectorDense = Vector<Complex32>.Build.Dense(3); |
||||
|
readonly Vector<Complex32> _vectorSparse = Vector<Complex32>.Build.Sparse(3); |
||||
|
readonly Matrix<Complex32> _matrixDense = Matrix<Complex32>.Build.Dense(3, 3); |
||||
|
readonly Matrix<Complex32> _matrixSparse = Matrix<Complex32>.Build.Sparse(3, 3); |
||||
|
readonly Matrix<Complex32> _matrixDiagonal = Matrix<Complex32>.Build.Diagonal(3, 3); |
||||
|
|
||||
|
[Test] |
||||
|
public void VerifyExamples() |
||||
|
{ |
||||
|
Assert.That(_vectorDense, Is.TypeOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse, Is.TypeOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense, Is.TypeOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse, Is.TypeOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal, Is.TypeOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Negate() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.Negate(), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.Negate(), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.Negate(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Negate(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Negate(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Conjugate() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.Conjugate(), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.Conjugate(), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.Conjugate(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Conjugate(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Conjugate(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Transpose() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Transpose(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Transpose(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Transpose(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void ConjugateTranspose() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.ConjugateTranspose(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.ConjugateTranspose(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.ConjugateTranspose(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Add() |
||||
|
{ |
||||
|
Assert.That(_vectorDense + _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense + _vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse + _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse + _vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense + _matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense + _matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Subtract() |
||||
|
{ |
||||
|
Assert.That(_vectorDense - _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense - _vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse - _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse - _vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense - _matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense - _matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void PointwiseMultiply() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.PointwiseMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense.PointwiseMultiply(_vectorSparse), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.PointwiseMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.PointwiseMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void MatrixMultiply() |
||||
|
{ |
||||
|
Assert.That(_matrixDense*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense*_matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense*_matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void MatrixVectorMultiply() |
||||
|
{ |
||||
|
Assert.That(_matrixDense*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDense*_vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse*_vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDiagonal*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDiagonal*_vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
|
||||
|
Assert.That(_vectorDense*_matrixDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense*_matrixSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_vectorDense*_matrixDiagonal, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixDiagonal, Is.InstanceOf<SparseVector>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Append() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Append(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Append(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Stack() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Stack(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Stack(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void DiagonalStack() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
// Special Case
|
||||
|
Assert.That(Matrix<Complex32>.Build.DiagonalIdentity(2, 4).DiagonalStack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,220 @@ |
|||||
|
using MathNet.Numerics.LinearAlgebra; |
||||
|
using MathNet.Numerics.LinearAlgebra.Double; |
||||
|
using NUnit.Framework; |
||||
|
|
||||
|
namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double |
||||
|
{ |
||||
|
[TestFixture] |
||||
|
public class ReturnTypeTests |
||||
|
{ |
||||
|
readonly Vector<double> _vectorDense = Vector<double>.Build.Dense(3); |
||||
|
readonly Vector<double> _vectorSparse = Vector<double>.Build.Sparse(3); |
||||
|
readonly Matrix<double> _matrixDense = Matrix<double>.Build.Dense(3, 3); |
||||
|
readonly Matrix<double> _matrixSparse = Matrix<double>.Build.Sparse(3, 3); |
||||
|
readonly Matrix<double> _matrixDiagonal = Matrix<double>.Build.Diagonal(3, 3); |
||||
|
|
||||
|
[Test] |
||||
|
public void VerifyExamples() |
||||
|
{ |
||||
|
Assert.That(_vectorDense, Is.TypeOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse, Is.TypeOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense, Is.TypeOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse, Is.TypeOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal, Is.TypeOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Negate() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.Negate(), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.Negate(), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.Negate(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Negate(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Negate(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Conjugate() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.Conjugate(), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.Conjugate(), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.Conjugate(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Conjugate(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Conjugate(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Transpose() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Transpose(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Transpose(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Transpose(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void ConjugateTranspose() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.ConjugateTranspose(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.ConjugateTranspose(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.ConjugateTranspose(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Add() |
||||
|
{ |
||||
|
Assert.That(_vectorDense + _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense + _vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse + _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse + _vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense + _matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense + _matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Subtract() |
||||
|
{ |
||||
|
Assert.That(_vectorDense - _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense - _vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse - _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse - _vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense - _matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense - _matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void PointwiseMultiply() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.PointwiseMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense.PointwiseMultiply(_vectorSparse), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.PointwiseMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.PointwiseMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void MatrixMultiply() |
||||
|
{ |
||||
|
Assert.That(_matrixDense*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense*_matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense*_matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void MatrixVectorMultiply() |
||||
|
{ |
||||
|
Assert.That(_matrixDense*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDense*_vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse*_vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDiagonal*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDiagonal*_vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
|
||||
|
Assert.That(_vectorDense*_matrixDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense*_matrixSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_vectorDense*_matrixDiagonal, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixDiagonal, Is.InstanceOf<SparseVector>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Append() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Append(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Append(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Stack() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Stack(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Stack(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void DiagonalStack() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
// Special Case
|
||||
|
Assert.That(Matrix<double>.Build.DiagonalIdentity(2, 4).DiagonalStack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,220 @@ |
|||||
|
using MathNet.Numerics.LinearAlgebra; |
||||
|
using MathNet.Numerics.LinearAlgebra.Single; |
||||
|
using NUnit.Framework; |
||||
|
|
||||
|
namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single |
||||
|
{ |
||||
|
[TestFixture] |
||||
|
public class ReturnTypeTests |
||||
|
{ |
||||
|
readonly Vector<float> _vectorDense = Vector<float>.Build.Dense(3); |
||||
|
readonly Vector<float> _vectorSparse = Vector<float>.Build.Sparse(3); |
||||
|
readonly Matrix<float> _matrixDense = Matrix<float>.Build.Dense(3, 3); |
||||
|
readonly Matrix<float> _matrixSparse = Matrix<float>.Build.Sparse(3, 3); |
||||
|
readonly Matrix<float> _matrixDiagonal = Matrix<float>.Build.Diagonal(3, 3); |
||||
|
|
||||
|
[Test] |
||||
|
public void VerifyExamples() |
||||
|
{ |
||||
|
Assert.That(_vectorDense, Is.TypeOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse, Is.TypeOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense, Is.TypeOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse, Is.TypeOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal, Is.TypeOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Negate() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.Negate(), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.Negate(), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.Negate(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Negate(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Negate(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Conjugate() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.Conjugate(), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.Conjugate(), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.Conjugate(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Conjugate(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Conjugate(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Transpose() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Transpose(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Transpose(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Transpose(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void ConjugateTranspose() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.ConjugateTranspose(), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.ConjugateTranspose(), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.ConjugateTranspose(), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Add() |
||||
|
{ |
||||
|
Assert.That(_vectorDense + _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense + _vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse + _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse + _vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense + _matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense + _matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse + _matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal + _matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Subtract() |
||||
|
{ |
||||
|
Assert.That(_vectorDense - _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense - _vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse - _vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse - _vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense - _matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense - _matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse - _matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal - _matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void PointwiseMultiply() |
||||
|
{ |
||||
|
Assert.That(_vectorDense.PointwiseMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense.PointwiseMultiply(_vectorSparse), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.PointwiseMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse.PointwiseMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.PointwiseMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void MatrixMultiply() |
||||
|
{ |
||||
|
Assert.That(_matrixDense*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense*_matrixSparse, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense*_matrixDiagonal, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse*_matrixDiagonal, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixDense, Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixSparse, Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal*_matrixDiagonal, Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeAndMultiply(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void MatrixVectorMultiply() |
||||
|
{ |
||||
|
Assert.That(_matrixDense*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDense*_vectorSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse*_vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDiagonal*_vectorDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDiagonal*_vectorSparse, Is.InstanceOf<SparseVector>()); |
||||
|
|
||||
|
Assert.That(_vectorDense*_matrixDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixDense, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorDense*_matrixSparse, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixSparse, Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_vectorDense*_matrixDiagonal, Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_vectorSparse*_matrixDiagonal, Is.InstanceOf<SparseVector>()); |
||||
|
|
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDense.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixSparse.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_vectorDense), Is.InstanceOf<DenseVector>()); |
||||
|
Assert.That(_matrixDiagonal.TransposeThisAndMultiply(_vectorSparse), Is.InstanceOf<SparseVector>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Append() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Append(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Append(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Append(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Append(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void Stack() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Stack(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.Stack(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.Stack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.Stack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
|
||||
|
[Test] |
||||
|
public void DiagonalStack() |
||||
|
{ |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixSparse), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDense.DiagonalStack(_matrixDiagonal), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixSparse.DiagonalStack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixDense), Is.InstanceOf<DenseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixSparse), Is.InstanceOf<SparseMatrix>()); |
||||
|
Assert.That(_matrixDiagonal.DiagonalStack(_matrixDiagonal), Is.InstanceOf<DiagonalMatrix>()); |
||||
|
|
||||
|
// Special Case
|
||||
|
Assert.That(Matrix<float>.Build.DiagonalIdentity(2, 4).DiagonalStack(_matrixDiagonal), Is.InstanceOf<SparseMatrix>()); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue