diff --git a/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs b/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs index 9bc60908..8f6ccbf3 100644 --- a/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs +++ b/src/UnitTests/DistributionTests/Multivariate/InverseWishartTests.cs @@ -24,14 +24,15 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.Distributions; +using MathNet.Numerics.LinearAlgebra; +using MathNet.Numerics.LinearAlgebra.Double; +using MathNet.Numerics.Random; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate { - using System; - using Distributions; - using LinearAlgebra.Double; - using LinearAlgebraTests.Double; - using NUnit.Framework; - /// /// Inverse Wishart tests. /// @@ -57,7 +58,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void CanCreateInverseWishart(double nu, int order) { - var matrix = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrix = Matrix.Build.RandomPositiveDefinite(order, 1); var d = new InverseWishart(nu, matrix); Assert.AreEqual(nu, d.DegreesOfFreedom); @@ -80,7 +81,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void FailSCreateInverseWishart(double nu, int order) { - var matrix = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrix = Matrix.Build.RandomPositiveDefinite(order, 1); matrix[0, 0] = 0.0; Assert.Throws(() => new InverseWishart(nu, matrix)); @@ -95,7 +96,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(Double.NaN, 5)] public void FailNuCreateInverseWishart(double nu, int order) { - var matrix = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrix = Matrix.Build.RandomPositiveDefinite(order, 1); Assert.Throws(() => new InverseWishart(nu, matrix)); } @@ -105,7 +106,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void HasRandomSource() { - var d = new InverseWishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new InverseWishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); Assert.IsNotNull(d.RandomSource); } @@ -115,16 +116,16 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void CanSetRandomSource() { - new InverseWishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)) + new InverseWishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)) { - RandomSource = new Random(0) + RandomSource = new System.Random(0) }; } [Test] public void HasRandomSourceEvenAfterSetToNull() { - var d = new InverseWishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new InverseWishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); Assert.DoesNotThrow(() => d.RandomSource = null); Assert.IsNotNull(d.RandomSource); } @@ -135,7 +136,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void ValidateToString() { - var d = new InverseWishart(1d, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new InverseWishart(1d, Matrix.Build.RandomPositiveDefinite(2, 1)); Assert.AreEqual("InverseWishart(ν = 1, Rows = 2, Columns = 2)", d.ToString()); } @@ -148,7 +149,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0)] public void CanGetNu(double nu) { - var d = new InverseWishart(nu, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new InverseWishart(nu, Matrix.Build.RandomPositiveDefinite(2, 1)); Assert.AreEqual(nu, d.DegreesOfFreedom); } @@ -161,7 +162,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0)] public void CanSetNu(double nu) { - new InverseWishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)) + new InverseWishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)) { DegreesOfFreedom = nu }; @@ -174,7 +175,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate public void CanGetS() { const int Order = 2; - var matrix = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(Order); + var matrix = Matrix.Build.RandomPositiveDefinite(Order, 1); var d = new InverseWishart(1.0, matrix); for (var i = 0; i < Order; i++) @@ -192,9 +193,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void CanSetS() { - new InverseWishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)) + new InverseWishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)) { - Scale = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2) + Scale = Matrix.Build.RandomPositiveDefinite(2, 1) }; } @@ -208,7 +209,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void ValidateMean(double nu, int order) { - var d = new InverseWishart(nu, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order)); + var d = new InverseWishart(nu, Matrix.Build.RandomPositiveDefinite(order, 1)); var mean = d.Mean; for (var i = 0; i < d.Scale.RowCount; i++) @@ -230,7 +231,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void ValidateMode(double nu, int order) { - var d = new InverseWishart(nu, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order)); + var d = new InverseWishart(nu, Matrix.Build.RandomPositiveDefinite(order, 1)); var mode = d.Mode; for (var i = 0; i < d.Scale.RowCount; i++) @@ -252,7 +253,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void ValidateVariance(double nu, int order) { - var d = new InverseWishart(nu, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order)); + var d = new InverseWishart(nu, Matrix.Build.RandomPositiveDefinite(order, 1)); var variance = d.Variance; for (var i = 0; i < d.Scale.RowCount; i++) @@ -293,7 +294,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void CanSample() { - var d = new InverseWishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new InverseWishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); d.Sample(); } @@ -303,7 +304,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void CanSampleStatic() { - InverseWishart.Sample(new Random(0), 1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + InverseWishart.Sample(new System.Random(0), 1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); } /// @@ -312,7 +313,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void FailSampleStatic() { - Assert.Throws(() => InverseWishart.Sample(new Random(0), -1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2))); + Assert.Throws(() => InverseWishart.Sample(new System.Random(0), -1.0, Matrix.Build.RandomPositiveDefinite(2, 1))); } } } diff --git a/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs b/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs index 2c835e92..5f217a01 100644 --- a/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs +++ b/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs @@ -24,14 +24,14 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.Distributions; +using MathNet.Numerics.LinearAlgebra; +using MathNet.Numerics.LinearAlgebra.Double; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate { - using System; - using Distributions; - using LinearAlgebra.Double; - using LinearAlgebraTests.Double; - using NUnit.Framework; - /// /// Matrix Normal tests. /// @@ -48,9 +48,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanCreateMatrixNormal(int n, int p) { - var matrixM = MatrixLoader.GenerateRandomDenseMatrix(n, p); - var matrixV = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n); - var matrixK = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p); + var matrixM = Matrix.Build.Random(n, p, 1); + var matrixV = Matrix.Build.RandomPositiveDefinite(n, 1); + var matrixK = Matrix.Build.RandomPositiveDefinite(p, 1); var d = new MatrixNormal(matrixM, matrixV, matrixK); for (var i = 0; i < matrixM.RowCount; i++) @@ -97,9 +97,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5, 2, 5, 5, 2, 3)] public void FailCreateMatrixNormal(int rowsOfM, int columnsOfM, int rowsOfV, int columnsOfV, int rowsOfK, int columnsOfK) { - var matrixM = MatrixLoader.GenerateRandomDenseMatrix(rowsOfM, columnsOfM); - var matrixV = MatrixLoader.GenerateRandomDenseMatrix(rowsOfV, columnsOfV); - var matrixK = MatrixLoader.GenerateRandomDenseMatrix(rowsOfK, columnsOfK); + var matrixM = Matrix.Build.Random(rowsOfM, columnsOfM, 1); + var matrixV = Matrix.Build.Random(rowsOfV, columnsOfV, 1); + var matrixK = Matrix.Build.Random(rowsOfK, columnsOfK, 1); Assert.Throws(() => new MatrixNormal(matrixM, matrixV, matrixK)); } @@ -112,7 +112,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate { const int N = 2; const int P = 3; - var d = new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(N, P), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(N), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(P)); + var d = new MatrixNormal(Matrix.Build.Random(N, P, 1), Matrix.Build.RandomPositiveDefinite(N, 1), Matrix.Build.RandomPositiveDefinite(P, 1)); Assert.IsNotNull(d.RandomSource); } @@ -124,9 +124,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate { const int N = 2; const int P = 3; - new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(N, P), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(N), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(P)) + new MatrixNormal(Matrix.Build.Random(N, P, 1), Matrix.Build.RandomPositiveDefinite(N, 1), Matrix.Build.RandomPositiveDefinite(P, 1)) { - RandomSource = new Random(0) + RandomSource = new System.Random(0) }; } @@ -135,7 +135,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate { const int N = 2; const int P = 3; - var d = new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(N, P), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(N), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(P)); + var d = new MatrixNormal(Matrix.Build.Random(N, P, 1), Matrix.Build.RandomPositiveDefinite(N, 1), Matrix.Build.RandomPositiveDefinite(P, 1)); Assert.DoesNotThrow(() => d.RandomSource = null); Assert.IsNotNull(d.RandomSource); } @@ -148,7 +148,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate { const int N = 2; const int P = 5; - var d = new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(N, P), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(N), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(P)); + var d = new MatrixNormal(Matrix.Build.Random(N, P, 1), Matrix.Build.RandomPositiveDefinite(N, 1), Matrix.Build.RandomPositiveDefinite(P, 1)); Assert.AreEqual("MatrixNormal(Rows = 2, Columns = 5)", d.ToString()); } @@ -162,8 +162,8 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanGetM(int n, int p) { - var matrixM = MatrixLoader.GenerateRandomDenseMatrix(n, p); - var d = new MatrixNormal(matrixM, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p)); + var matrixM = Matrix.Build.Random(n, p, 1); + var d = new MatrixNormal(matrixM, Matrix.Build.RandomPositiveDefinite(n, 1), Matrix.Build.RandomPositiveDefinite(p, 1)); for (var i = 0; i < matrixM.RowCount; i++) { for (var j = 0; j < matrixM.ColumnCount; j++) @@ -183,9 +183,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanSetM(int n, int p) { - new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(n, p), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p)) + new MatrixNormal(Matrix.Build.Random(n, p, 1), Matrix.Build.RandomPositiveDefinite(n, 1), Matrix.Build.RandomPositiveDefinite(p, 1)) { - Mean = MatrixLoader.GenerateRandomDenseMatrix(n, p) + Mean = Matrix.Build.Random(n, p, 1) }; } @@ -199,8 +199,8 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanGetV(int n, int p) { - var matrixV = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n); - var d = new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(n, p), matrixV, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p)); + var matrixV = Matrix.Build.RandomPositiveDefinite(n, 1); + var d = new MatrixNormal(Matrix.Build.Random(n, p, 1), matrixV, Matrix.Build.RandomPositiveDefinite(p, 1)); for (var i = 0; i < matrixV.RowCount; i++) { for (var j = 0; j < matrixV.ColumnCount; j++) @@ -220,9 +220,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanSetV(int n, int p) { - new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(n, p), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p)) + new MatrixNormal(Matrix.Build.Random(n, p, 1), Matrix.Build.RandomPositiveDefinite(n, 1), Matrix.Build.RandomPositiveDefinite(p, 1)) { - RowCovariance = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n) + RowCovariance = Matrix.Build.RandomPositiveDefinite(n, 1) }; } @@ -236,8 +236,8 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanGetK(int n, int p) { - var matrixK = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p); - var d = new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(n, p), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n), matrixK); + var matrixK = Matrix.Build.RandomPositiveDefinite(p, 1); + var d = new MatrixNormal(Matrix.Build.Random(n, p, 1), Matrix.Build.RandomPositiveDefinite(n, 1), matrixK); for (var i = 0; i < matrixK.RowCount; i++) { for (var j = 0; j < matrixK.ColumnCount; j++) @@ -257,9 +257,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanSetK(int n, int p) { - new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(n, p), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p)) + new MatrixNormal(Matrix.Build.Random(n, p, 1), Matrix.Build.RandomPositiveDefinite(n, 1), Matrix.Build.RandomPositiveDefinite(p, 1)) { - ColumnCovariance = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p) + ColumnCovariance = Matrix.Build.RandomPositiveDefinite(p, 1) }; } @@ -307,7 +307,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanSample(int n, int p) { - var d = new MatrixNormal(MatrixLoader.GenerateRandomDenseMatrix(n, p), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p)); + var d = new MatrixNormal(Matrix.Build.Random(n, p, 1), Matrix.Build.RandomPositiveDefinite(n, 1), Matrix.Build.RandomPositiveDefinite(p, 1)); d.Sample(); } @@ -321,7 +321,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(10, 10)] public void CanSampleStatic(int n, int p) { - MatrixNormal.Sample(new Random(0), MatrixLoader.GenerateRandomDenseMatrix(n, p), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(n), MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(p)); + MatrixNormal.Sample(new System.Random(0), Matrix.Build.Random(n, p, 1), Matrix.Build.RandomPositiveDefinite(n, 1), Matrix.Build.RandomPositiveDefinite(p, 1)); } /// @@ -343,7 +343,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5, 2, 5, 5, 2, 3)] public void FailSampleStatic(int rowsOfM, int columnsOfM, int rowsOfV, int columnsOfV, int rowsOfK, int columnsOfK) { - Assert.Throws(() => MatrixNormal.Sample(new Random(0), MatrixLoader.GenerateRandomDenseMatrix(rowsOfM, columnsOfM), MatrixLoader.GenerateRandomDenseMatrix(rowsOfV, columnsOfV), MatrixLoader.GenerateRandomDenseMatrix(rowsOfK, columnsOfK))); + Assert.Throws(() => MatrixNormal.Sample(new System.Random(0), Matrix.Build.Random(rowsOfM, columnsOfM, 1), Matrix.Build.Random(rowsOfV, columnsOfV, 1), Matrix.Build.Random(rowsOfK, columnsOfK, 1))); } } } diff --git a/src/UnitTests/DistributionTests/Multivariate/WishartTests.cs b/src/UnitTests/DistributionTests/Multivariate/WishartTests.cs index cf22e27e..8177ba35 100644 --- a/src/UnitTests/DistributionTests/Multivariate/WishartTests.cs +++ b/src/UnitTests/DistributionTests/Multivariate/WishartTests.cs @@ -24,14 +24,14 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.Distributions; +using MathNet.Numerics.LinearAlgebra; +using MathNet.Numerics.LinearAlgebra.Double; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate { - using System; - using Distributions; - using LinearAlgebra.Double; - using LinearAlgebraTests.Double; - using NUnit.Framework; - /// /// Wishart distribution tests. /// @@ -57,7 +57,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void CanCreateWishart(double nu, int order) { - var matrix = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrix = Matrix.Build.RandomPositiveDefinite(order, 1); var d = new Wishart(nu, matrix); @@ -82,7 +82,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void FailSCreateWishart(double nu, int order) { - var matrix = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrix = Matrix.Build.RandomPositiveDefinite(order, 1); matrix[0, 0] = 0.0; Assert.Throws(() => new Wishart(nu, matrix)); @@ -97,7 +97,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(Double.NaN, 5)] public void FailNuCreateWishart(double nu, int order) { - var matrix = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrix = Matrix.Build.RandomPositiveDefinite(order, 1); Assert.Throws(() => new InverseWishart(nu, matrix)); } @@ -107,7 +107,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void HasRandomSource() { - var d = new Wishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new Wishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); Assert.IsNotNull(d.RandomSource); } @@ -117,9 +117,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void CanSetRandomSource() { - new Wishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)) + new Wishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)) { - RandomSource = new Random(0) + RandomSource = new System.Random(0) }; } @@ -129,7 +129,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void FailSetRandomSourceWithNullReference() { - var d = new Wishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new Wishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); Assert.Throws(() => d.RandomSource = null); } @@ -139,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void ValidateToString() { - var d = new Wishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new Wishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); Assert.AreEqual("Wishart(DegreesOfFreedom = 1, Rows = 2, Columns = 2)", d.ToString()); } @@ -152,7 +152,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0)] public void CanGetNu(double nu) { - var d = new Wishart(nu, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new Wishart(nu, Matrix.Build.RandomPositiveDefinite(2, 1)); Assert.AreEqual(nu, d.DegreesOfFreedom); } @@ -165,7 +165,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0)] public void CanSetNu(double nu) { - new Wishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)) + new Wishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)) { DegreesOfFreedom = nu }; @@ -178,7 +178,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate public void CanGetS() { const int Order = 2; - var matrix = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(Order); + var matrix = Matrix.Build.RandomPositiveDefinite(Order, 1); var d = new Wishart(1.0, matrix); for (var i = 0; i < Order; i++) @@ -196,9 +196,9 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void CanSetS() { - new Wishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)) + new Wishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)) { - Scale = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2) + Scale = Matrix.Build.RandomPositiveDefinite(2, 1) }; } @@ -212,7 +212,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void ValidateMean(double nu, int order) { - var d = new Wishart(nu, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order)); + var d = new Wishart(nu, Matrix.Build.RandomPositiveDefinite(order, 1)); var mean = d.Mean; for (var i = 0; i < d.Scale.RowCount; i++) @@ -234,7 +234,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void ValidateMode(double nu, int order) { - var d = new Wishart(nu, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order)); + var d = new Wishart(nu, Matrix.Build.RandomPositiveDefinite(order, 1)); var mode = d.Mode; for (var i = 0; i < d.Scale.RowCount; i++) @@ -256,7 +256,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [TestCase(5.0, 5)] public void ValidateVariance(double nu, int order) { - var d = new Wishart(nu, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order)); + var d = new Wishart(nu, Matrix.Build.RandomPositiveDefinite(order, 1)); var variance = d.Variance; for (var i = 0; i < d.Scale.RowCount; i++) @@ -295,7 +295,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void CanSample() { - var d = new Wishart(1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + var d = new Wishart(1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); d.Sample(); } @@ -305,7 +305,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void CanSampleStatic() { - Wishart.Sample(new Random(0), 1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2)); + Wishart.Sample(new System.Random(0), 1.0, Matrix.Build.RandomPositiveDefinite(2, 1)); } /// @@ -314,7 +314,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate [Test] public void FailSampleStatic() { - Assert.Throws(() => Wishart.Sample(new Random(0), -1.0, MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(2))); + Assert.Throws(() => Wishart.Sample(new System.Random(0), -1.0, Matrix.Build.RandomPositiveDefinite(2, 1))); } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex/DenseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/DenseMatrixTests.cs index 6eae4fe4..3c1c440d 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/DenseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/DenseMatrixTests.cs @@ -68,27 +68,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex return DenseMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new DenseVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(Complex[] data) - { - return new DenseVector(data); - } - /// /// Can create a matrix form array. /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs index 928e5195..4c9b547e 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs @@ -68,7 +68,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex TestMatrices = new Dictionary>(); foreach (var name in TestData2D.Keys) { - TestMatrices.Add(name, CreateMatrix(TestData2D[name])); + TestMatrices.Add(name, DiagonalMatrix.OfArray(TestData2D[name])); } } @@ -93,27 +93,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex return DiagonalMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new SparseVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(Complex[] data) - { - return SparseVector.OfEnumerable(data); - } - /// /// Can create a matrix from a diagonal array. /// @@ -239,7 +218,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [Test] public void PermuteMatrixRowsThrowsInvalidOperationException() { - var matrixp = CreateMatrix(TestData2D["Singular3x3"]); + var matrixp = DiagonalMatrix.OfArray(TestData2D["Singular3x3"]); var permutation = new Permutation(new[] {2, 0, 1}); Assert.Throws(() => matrixp.PermuteRows(permutation)); } @@ -250,7 +229,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [Test] public void PermuteMatrixColumnsThrowsInvalidOperationException() { - var matrixp = CreateMatrix(TestData2D["Singular3x3"]); + var matrixp = DiagonalMatrix.OfArray(TestData2D["Singular3x3"]); var permutation = new Permutation(new[] {2, 0, 1}); Assert.Throws(() => matrixp.PermuteColumns(permutation)); } diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/CholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/CholeskyTests.cs index 06bfde90..d241aaa4 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/CholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/CholeskyTests.cs @@ -24,9 +24,10 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex; using NUnit.Framework; -using System; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization { @@ -113,7 +114,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixX = Matrix.Build.RandomPositiveDefinite(order, 1); var chol = matrixX.Cholesky(); var factorC = chol.Factor; @@ -153,10 +154,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseVector(order); + var matrixB = Vector.Build.Random(order, 1); var x = chol.Solve(matrixB); Assert.AreEqual(matrixB.Count, x.Count); @@ -192,10 +193,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrix(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(row); + var matrixA = Matrix.Build.RandomPositiveDefinite(row, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, col); + var matrixB = Matrix.Build.Random(row, col, 1); var matrixX = chol.Solve(matrixB); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); @@ -234,10 +235,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseVector(order); + var matrixB = Vector.Build.Random(order, 1); var matrixBCopy = matrixB.Clone(); var x = new DenseVector(order); chol.Solve(matrixB, x); @@ -281,10 +282,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(row); + var matrixA = Matrix.Build.RandomPositiveDefinite(row, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, col); + var matrixB = Matrix.Build.Random(row, col, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(row, col); chol.Solve(matrixB, matrixX); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs index 92526c37..29691f37 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/EvdTests.cs @@ -24,6 +24,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex; using NUnit.Framework; @@ -79,7 +80,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; @@ -114,7 +115,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanFactorizeRandomSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; @@ -147,7 +148,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorEvd = matrixA.Evd(); Assert.AreEqual(factorEvd.Rank, order); @@ -206,12 +207,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorEvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -247,12 +248,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorEvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -295,11 +296,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorEvd.Solve(vectorb, resultx); @@ -341,12 +342,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/GramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/GramSchmidtTests.cs index 70da2c43..cfcdc38e 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/GramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/GramSchmidtTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex; using MathNet.Numerics.LinearAlgebra.Complex.Factorization; using NUnit.Framework; @@ -126,7 +127,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorGramSchmidt = matrixA.GramSchmidt(); var q = factorGramSchmidt.Q; var r = factorGramSchmidt.R; @@ -191,11 +192,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorGramSchmidt.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -230,11 +231,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorGramSchmidt.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -276,10 +277,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorGramSchmidt.Solve(vectorb, resultx); @@ -322,11 +323,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -374,11 +375,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [Test] public void CanSolveForMatrixWithTallRandomMatrix() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(20, 5); + var matrixB = Matrix.Build.Random(20, 5, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -413,11 +414,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [Test] public void CanSolveForVectorWithTallRandomMatrix() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.GramSchmidt(); - var vectorB = MatrixLoader.GenerateRandomDenseVector(20); + var vectorB = Vector.Build.Random(20, 1); var vectorX = factorQR.Solve(vectorB); // The solution x dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/LUTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/LUTests.cs index e4c9bc27..8b46fc1a 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/LUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/LUTests.cs @@ -24,9 +24,10 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex; using NUnit.Framework; -using System; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization { @@ -114,7 +115,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixX = Matrix.Build.Random(order, order, 1); var factorLU = matrixX.LU(); var matrixL = factorLU.L; var matrixU = factorLU.U; @@ -169,11 +170,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorLU.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -208,11 +209,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorLU.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -254,10 +255,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorLU.Solve(vectorb, resultx); @@ -300,11 +301,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -358,7 +359,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanInverse(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/QRTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/QRTests.cs index 21ac2793..eb8c5e29 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/QRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/QRTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex; using MathNet.Numerics.LinearAlgebra.Complex.Factorization; using MathNet.Numerics.LinearAlgebra.Factorization; @@ -143,7 +144,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorQR = matrixA.QR(QRMethod.Full); var q = factorQR.Q; var r = factorQR.R; @@ -211,7 +212,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrixUsingThinQR(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorQR = matrixA.QR(QRMethod.Thin); var q = factorQR.Q; var r = factorQR.R; @@ -278,11 +279,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -317,11 +318,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -363,10 +364,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorQR.Solve(vectorb, resultx); @@ -409,11 +410,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -467,11 +468,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -506,11 +507,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -552,10 +553,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorQR.Solve(vectorb, resultx); @@ -598,11 +599,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -652,11 +653,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(QRMethod.Thin)] public void CanSolveForMatrixWithTallRandomMatrix(QRMethod method) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(method); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(20, 5); + var matrixB = Matrix.Build.Random(20, 5, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -693,11 +694,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(QRMethod.Thin)] public void CanSolveForVectorWithTallRandomMatrix(QRMethod method) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(method); - var vectorB = MatrixLoader.GenerateRandomDenseVector(20); + var vectorB = Vector.Build.Random(20, 1); var vectorX = factorQR.Solve(vectorB); // The solution x dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/SvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/SvdTests.cs index abff8f0f..5c3274ee 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/SvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/SvdTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex; using NUnit.Framework; @@ -87,7 +88,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorSvd = matrixA.Svd(); var u = factorSvd.U; var vt = factorSvd.VT; @@ -126,7 +127,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 93)] public void CanCheckRankOfNonSquare(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorSvd = matrixA.Svd(); var mn = Math.Min(row, column); @@ -145,7 +146,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(90)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorSvd = matrixA.Svd(); if (factorSvd.Determinant != 0) @@ -190,10 +191,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [Test] public void SolveMatrixIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(10, 9); + var matrixA = Matrix.Build.Random(10, 9, 1); var factorSvd = matrixA.Svd(false); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(10, 9); + var matrixB = Matrix.Build.Random(10, 9, 1); Assert.Throws(() => factorSvd.Solve(matrixB)); } @@ -203,10 +204,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [Test] public void SolveVectorIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(10, 9); + var matrixA = Matrix.Build.Random(10, 9, 1); var factorSvd = matrixA.Svd(false); - var vectorb = MatrixLoader.GenerateRandomDenseVector(9); + var vectorb = Vector.Build.Random(9, 1); Assert.Throws(() => factorSvd.Solve(vectorb)); } @@ -223,11 +224,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(90, 100)] public void CanSolveForRandomVector(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(row); + var vectorb = Vector.Build.Random(row, 1); var resultx = factorSvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -263,11 +264,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixB = Matrix.Build.Random(row, column, 1); var matrixX = factorSvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -310,10 +311,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(90, 100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(row); + var vectorb = Vector.Build.Random(row, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(column); factorSvd.Solve(vectorb, resultx); @@ -355,11 +356,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixB = Matrix.Build.Random(row, column, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(column, column); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserCholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserCholeskyTests.cs index 4d3286b2..f3c8dde2 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserCholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserCholeskyTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization @@ -112,7 +113,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixX = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var chol = matrixX.Cholesky(); var factorC = chol.Factor; @@ -152,10 +153,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var b = MatrixLoader.GenerateRandomUserDefinedVector(order); + var b = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var x = chol.Solve(b); Assert.AreEqual(b.Count, x.Count); @@ -191,10 +192,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrix(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(row); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(row, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, col); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, col, 1).ToArray()); var matrixX = chol.Solve(matrixB); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); @@ -233,10 +234,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var b = MatrixLoader.GenerateRandomUserDefinedVector(order); + var b = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var matrixBCopy = b.Clone(); var x = new UserDefinedVector(order); chol.Solve(b, x); @@ -280,10 +281,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(row); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(row, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, col); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, col, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(row, col); chol.Solve(matrixB, matrixX); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserEvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserEvdTests.cs index fbe64015..541c2066 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserEvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserEvdTests.cs @@ -24,6 +24,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization @@ -78,7 +79,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -114,7 +115,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanFactorizeRandomSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -146,7 +147,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorEvd = matrixA.Evd(); Assert.AreEqual(factorEvd.Rank, order); @@ -204,11 +205,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorEvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -243,11 +244,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorEvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -289,10 +290,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorEvd.Solve(vectorb, resultx); @@ -333,11 +334,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserGramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserGramSchmidtTests.cs index 6b9bf761..d3b4f508 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserGramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserGramSchmidtTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex.Factorization; using NUnit.Framework; @@ -125,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorGramSchmidt = matrixA.GramSchmidt(); var q = factorGramSchmidt.Q; var r = factorGramSchmidt.R; @@ -190,11 +191,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorGramSchmidt.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -229,11 +230,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorGramSchmidt.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -275,10 +276,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorGramSchmidt.Solve(vectorb, resultx); @@ -321,11 +322,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserLUTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserLUTests.cs index 2d5c2274..fbf7a0f0 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserLUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserLUTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization @@ -113,7 +114,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixX = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorLU = matrixX.LU(); var matrixL = factorLU.L; var matrixU = factorLU.U; @@ -168,11 +169,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorLU.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -207,11 +208,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorLU.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -253,10 +254,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorLU.Solve(vectorb, resultx); @@ -299,11 +300,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); @@ -357,7 +358,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanInverse(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserQRTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserQRTests.cs index fedc66c5..4563ef41 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserQRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserQRTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex.Factorization; using MathNet.Numerics.LinearAlgebra.Factorization; using NUnit.Framework; @@ -143,7 +144,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorQR = matrixA.QR(QRMethod.Full); var q = factorQR.Q; var r = factorQR.R; @@ -192,7 +193,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrixUsingThinQR(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorQR = matrixA.QR(QRMethod.Thin); var q = factorQR.Q; var r = factorQR.R; @@ -240,11 +241,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -279,11 +280,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -325,10 +326,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorQR.Solve(vectorb, resultx); @@ -371,11 +372,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); @@ -429,11 +430,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -468,11 +469,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -514,10 +515,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorQR.Solve(vectorb, resultx); @@ -560,11 +561,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserSvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserSvdTests.cs index 55ed360e..759636d5 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserSvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Factorization/UserSvdTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization @@ -86,7 +87,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorSvd = matrixA.Svd(); var u = factorSvd.U; var vt = factorSvd.VT; @@ -125,7 +126,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(100, 93)] public void CanCheckRankOfNonSquare(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorSvd = matrixA.Svd(); var mn = Math.Min(row, column); @@ -144,7 +145,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(90)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorSvd = matrixA.Svd(); if (factorSvd.Determinant != 0) @@ -189,10 +190,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [Test] public void SolveMatrixIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 9); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(10, 9, 1).ToArray()); var factorSvd = matrixA.Svd(false); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 9); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(10, 9, 1).ToArray()); Assert.Throws(() => factorSvd.Solve(matrixB)); } @@ -202,10 +203,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [Test] public void SolveVectorIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 9); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(10, 9, 1).ToArray()); var factorSvd = matrixA.Svd(false); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(9); + var vectorb = new UserDefinedVector(Vector.Build.Random(9, 1).ToArray()); Assert.Throws(() => factorSvd.Solve(vectorb)); } @@ -222,11 +223,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(90, 100)] public void CanSolveForRandomVector(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(row); + var vectorb = new UserDefinedVector(Vector.Build.Random(row, 1).ToArray()); var resultx = factorSvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -262,11 +263,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixX = factorSvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -309,10 +310,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(90, 100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(row); + var vectorb = new UserDefinedVector(Vector.Build.Random(row, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(column); factorSvd.Solve(vectorb, resultx); @@ -354,11 +355,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(column, column); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs b/src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs index 03b95c84..aed6c162 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs @@ -70,21 +70,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex /// A matrix with the given values. protected abstract Matrix CreateMatrix(Complex[,] data); - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected abstract Vector CreateVector(int size); - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected abstract Vector CreateVector(Complex[] data); - /// /// Setup test matrices. /// @@ -108,35 +93,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex TestMatrices.Add(name, CreateMatrix(TestData2D[name])); } } - - public static Matrix GenerateRandomDenseMatrix(int row, int col) - { - return Matrix.Build.Random(row, col, 1); - } - - public static Matrix GenerateRandomPositiveDefiniteHermitianDenseMatrix(int order) - { - return Matrix.Build.RandomPositiveDefinite(order, 1); - } - - public static Vector GenerateRandomDenseVector(int order) - { - return Vector.Build.Random(order, 1); - } - - public static Matrix GenerateRandomUserDefinedMatrix(int row, int col) - { - return new UserDefinedMatrix(GenerateRandomDenseMatrix(row, col).ToArray()); - } - - public static Matrix GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(int order) - { - return new UserDefinedMatrix(GenerateRandomPositiveDefiniteHermitianDenseMatrix(order).ToArray()); - } - - public static Vector GenerateRandomUserDefinedVector(int order) - { - return new UserDefinedVector(GenerateRandomDenseVector(order).ToArray()); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs index 039435c4..0e8d70fa 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/MatrixTests.cs @@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [TestCase("Wide2x3")] public void CanTransposeMatrix(string name) { - var matrix = CreateMatrix(TestData2D[name]); + var matrix = TestMatrices[name]; var transpose = matrix.Transpose(); Assert.AreNotSame(matrix, transpose); @@ -70,7 +70,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [TestCase("Wide2x3")] public void CanConjugateTransposeMatrix(string name) { - var matrix = CreateMatrix(TestData2D[name]); + var matrix = TestMatrices[name]; var transpose = matrix.ConjugateTranspose(); Assert.AreNotSame(matrix, transpose); diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs index b54df88e..87536db8 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/BiCgStabTest.cs @@ -29,6 +29,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex; using MathNet.Numerics.LinearAlgebra.Complex.Solvers; using MathNet.Numerics.LinearAlgebra.Solvers; @@ -253,8 +254,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ [TestCase(10)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -284,8 +285,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ [TestCase(10)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs index c56ce757..85301011 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/GpBiCgTest.cs @@ -256,8 +256,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ [TestCase(10)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -287,8 +287,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ [TestCase(10)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs index cf7af6bc..98c16753 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/MlkBiCgStabTest.cs @@ -256,8 +256,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ [TestCase(10)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -287,8 +287,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ [TestCase(10)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs index 2651730c..0d934d83 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/Solvers/Iterative/TFQMRTest.cs @@ -256,8 +256,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ [TestCase(10)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -287,8 +287,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Solvers.Iterativ [TestCase(10)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Complex/SparseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/SparseMatrixTests.cs index 555f5475..13cd0313 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/SparseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/SparseMatrixTests.cs @@ -68,27 +68,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex return SparseMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new SparseVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(Complex[] data) - { - return SparseVector.OfEnumerable(data); - } - /// /// Can create a matrix form array. /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex/UserDefinedMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/UserDefinedMatrixTests.cs index 68d40ca2..2d1d223b 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/UserDefinedMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/UserDefinedMatrixTests.cs @@ -59,26 +59,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex { return new UserDefinedMatrix(data); } - - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new UserDefinedVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(Complex[] data) - { - return new UserDefinedVector(data); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/DenseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/DenseMatrixTests.cs index ef2d9717..47a60430 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/DenseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/DenseMatrixTests.cs @@ -64,27 +64,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 return DenseMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new DenseVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(Complex32[] data) - { - return new DenseVector(data); - } - /// /// Can create a matrix form array. /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs index 9afe6de7..7d83586e 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs @@ -64,7 +64,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 TestMatrices = new Dictionary>(); foreach (var name in TestData2D.Keys) { - TestMatrices.Add(name, CreateMatrix(TestData2D[name])); + TestMatrices.Add(name, DiagonalMatrix.OfArray(TestData2D[name])); } } @@ -89,27 +89,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 return DiagonalMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new SparseVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(Complex32[] data) - { - return SparseVector.OfEnumerable(data); - } - /// /// Can create a matrix from a diagonal array. /// @@ -235,7 +214,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [Test] public void PermuteMatrixRowsThrowsInvalidOperationException() { - var matrixp = CreateMatrix(TestData2D["Singular3x3"]); + var matrixp = DiagonalMatrix.OfArray(TestData2D["Singular3x3"]); var permutation = new Permutation(new[] {2, 0, 1}); Assert.Throws(() => matrixp.PermuteRows(permutation)); } @@ -246,7 +225,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [Test] public void PermuteMatrixColumnsThrowsInvalidOperationException() { - var matrixp = CreateMatrix(TestData2D["Singular3x3"]); + var matrixp = DiagonalMatrix.OfArray(TestData2D["Singular3x3"]); var permutation = new Permutation(new[] {2, 0, 1}); Assert.Throws(() => matrixp.PermuteColumns(permutation)); } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs index dfb7aa02..96f13cf3 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs @@ -24,9 +24,10 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32; using NUnit.Framework; -using System; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization { @@ -108,7 +109,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixX = Matrix.Build.RandomPositiveDefinite(order, 1); var chol = matrixX.Cholesky(); var factorC = chol.Factor; @@ -149,10 +150,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseVector(order); + var matrixB = Vector.Build.Random(order, 1); var x = chol.Solve(matrixB); Assert.AreEqual(matrixB.Count, x.Count); @@ -189,10 +190,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrix(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(row); + var matrixA = Matrix.Build.RandomPositiveDefinite(row, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, col); + var matrixB = Matrix.Build.Random(row, col, 1); var matrixX = chol.Solve(matrixB); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); @@ -232,10 +233,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseVector(order); + var matrixB = Vector.Build.Random(order, 1); var matrixBCopy = matrixB.Clone(); var x = new DenseVector(order); chol.Solve(matrixB, x); @@ -280,10 +281,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(row); + var matrixA = Matrix.Build.RandomPositiveDefinite(row, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, col); + var matrixB = Matrix.Build.Random(row, col, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(row, col); chol.Solve(matrixB, matrixX); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs index c8c9e76c..ac5a530d 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/EvdTests.cs @@ -24,6 +24,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32; using NUnit.Framework; @@ -81,7 +82,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -112,7 +113,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test] public void CanFactorizeRandomSymmetricMatrix([Values(1, 2, 5, 10)] int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; @@ -145,7 +146,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorEvd = matrixA.Evd(); Assert.AreEqual(factorEvd.Rank, order); @@ -203,12 +204,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(50)] public void CanSolveForRandomVectorAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorEvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -244,12 +245,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(50)] public void CanSolveForRandomMatrixAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorEvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -292,11 +293,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(50)] public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorEvd.Solve(vectorb, resultx); @@ -339,12 +340,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceConjugateSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs index 99e358df..743a2aa3 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/GramSchmidtTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32; using MathNet.Numerics.LinearAlgebra.Complex32.Factorization; using NUnit.Framework; @@ -122,7 +123,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorGramSchmidt = matrixA.GramSchmidt(); var q = factorGramSchmidt.Q; var r = factorGramSchmidt.R; @@ -190,11 +191,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorGramSchmidt.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -230,11 +231,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorGramSchmidt.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -277,10 +278,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorGramSchmidt.Solve(vectorb, resultx); @@ -324,11 +325,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -377,11 +378,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test] public void CanSolveForMatrixWithTallRandomMatrix() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(20, 5); + var matrixB = Matrix.Build.Random(20, 5, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -416,11 +417,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test] public void CanSolveForVectorWithTallRandomMatrix() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.GramSchmidt(); - var vectorB = MatrixLoader.GenerateRandomDenseVector(20); + var vectorB = Vector.Build.Random(20, 1); var vectorX = factorQR.Solve(vectorB); // The solution x dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/LUTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/LUTests.cs index 777251dc..06ee2197 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/LUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/LUTests.cs @@ -24,9 +24,10 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32; using NUnit.Framework; -using System; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization { @@ -110,7 +111,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixX = Matrix.Build.Random(order, order, 1); var factorLU = matrixX.LU(); var matrixL = factorLU.L; var matrixU = factorLU.U; @@ -166,11 +167,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorLU.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -206,11 +207,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorLU.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -253,10 +254,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorLU.Solve(vectorb, resultx); @@ -300,11 +301,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -359,7 +360,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanInverse(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/QRTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/QRTests.cs index d3817b2f..8ccedced 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/QRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/QRTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32; using MathNet.Numerics.LinearAlgebra.Complex32.Factorization; using MathNet.Numerics.LinearAlgebra.Factorization; @@ -140,7 +141,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorQR = matrixA.QR(QRMethod.Full); var q = factorQR.Q; var r = factorQR.R; @@ -209,7 +210,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrixUsingThinQR(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorQR = matrixA.QR(QRMethod.Thin); var q = factorQR.Q; var r = factorQR.R; @@ -277,11 +278,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -317,11 +318,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -364,10 +365,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorQR.Solve(vectorb, resultx); @@ -411,11 +412,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -470,11 +471,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -509,11 +510,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -556,10 +557,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorQR.Solve(vectorb, resultx); @@ -602,11 +603,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -657,11 +658,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(QRMethod.Thin)] public void CanSolveForMatrixWithTallRandomMatrix(QRMethod method) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(method); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(20, 5); + var matrixB = Matrix.Build.Random(20, 5, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -698,11 +699,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(QRMethod.Thin)] public void CanSolveForVectorWithTallRandomMatrix(QRMethod method) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(method); - var vectorB = MatrixLoader.GenerateRandomDenseVector(20); + var vectorB = Vector.Build.Random(20, 1); var vectorX = factorQR.Solve(vectorB); // The solution x dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/SvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/SvdTests.cs index 7d65ba7d..120cebd0 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/SvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/SvdTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32; using NUnit.Framework; @@ -83,7 +84,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorSvd = matrixA.Svd(); var u = factorSvd.U; var vt = factorSvd.VT; @@ -123,7 +124,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 93)] public void CanCheckRankOfNonSquare(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorSvd = matrixA.Svd(); var mn = Math.Min(row, column); @@ -142,7 +143,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(90)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorSvd = matrixA.Svd(); if (factorSvd.Determinant != 0) @@ -187,10 +188,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test] public void SolveMatrixIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(10, 3); + var matrixA = Matrix.Build.Random(10, 3, 1); var factorSvd = matrixA.Svd(false); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(10, 3); + var matrixB = Matrix.Build.Random(10, 3, 1); Assert.Throws(() => factorSvd.Solve(matrixB)); } @@ -200,10 +201,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test] public void SolveVectorIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(10, 3); + var matrixA = Matrix.Build.Random(10, 3, 1); var factorSvd = matrixA.Svd(false); - var vectorb = MatrixLoader.GenerateRandomDenseVector(3); + var vectorb = Vector.Build.Random(3, 1); Assert.Throws(() => factorSvd.Solve(vectorb)); } @@ -220,11 +221,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(90, 100)] public void CanSolveForRandomVector(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(row); + var vectorb = Vector.Build.Random(row, 1); var resultx = factorSvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -261,11 +262,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixB = Matrix.Build.Random(row, column, 1); var matrixX = factorSvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -309,10 +310,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(90, 100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(row); + var vectorb = Vector.Build.Random(row, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(column); factorSvd.Solve(vectorb, resultx); @@ -355,11 +356,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixB = Matrix.Build.Random(row, column, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(column, column); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserCholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserCholeskyTests.cs index b28c2022..52bc3622 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserCholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserCholeskyTests.cs @@ -24,11 +24,13 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization { - using System; - using NUnit.Framework; - using Complex32 = Numerics.Complex32; + using Numerics; /// /// Cholesky factorization tests for a user matrix. @@ -107,7 +109,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixX = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var chol = matrixX.Cholesky(); var factorC = chol.Factor; @@ -148,10 +150,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var b = MatrixLoader.GenerateRandomUserDefinedVector(order); + var b = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var x = chol.Solve(b); Assert.AreEqual(b.Count, x.Count); @@ -188,10 +190,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrix(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(row); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(row, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, col); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, col, 1).ToArray()); var matrixX = chol.Solve(matrixB); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); @@ -231,10 +233,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var b = MatrixLoader.GenerateRandomUserDefinedVector(order); + var b = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var matrixBCopy = b.Clone(); var x = new UserDefinedVector(order); chol.Solve(b, x); @@ -279,10 +281,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(row); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(row, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, col); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, col, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(row, col); chol.Solve(matrixB, matrixX); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserEvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserEvdTests.cs index f0bcdc66..4d670a1c 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserEvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserEvdTests.cs @@ -24,6 +24,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization @@ -80,7 +81,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -112,7 +113,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test, Ignore] public void CanFactorizeRandomSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -145,7 +146,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorEvd = matrixA.Evd(); Assert.AreEqual(factorEvd.Rank, order); @@ -198,11 +199,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test, Ignore] public void CanSolveForRandomVectorAndSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorEvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -238,11 +239,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorEvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -280,10 +281,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test, Ignore] public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven([Values(1, 2, 5, 10, 50, 100)] int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorEvd.Solve(vectorb, resultx); @@ -325,11 +326,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserGramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserGramSchmidtTests.cs index fd6f7be2..6761292a 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserGramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserGramSchmidtTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32.Factorization; using NUnit.Framework; @@ -121,7 +122,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorGramSchmidt = matrixA.GramSchmidt(); var q = factorGramSchmidt.Q; var r = factorGramSchmidt.R; @@ -189,11 +190,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorGramSchmidt.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -229,11 +230,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorGramSchmidt.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -276,10 +277,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorGramSchmidt.Solve(vectorb, resultx); @@ -323,11 +324,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserLUTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserLUTests.cs index 93aef717..6564a3d1 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserLUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserLUTests.cs @@ -24,11 +24,13 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization { - using System; - using NUnit.Framework; - using Complex32 = Numerics.Complex32; + using Numerics; /// /// LU factorization tests for a user matrix. @@ -108,7 +110,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixX = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorLU = matrixX.LU(); var matrixL = factorLU.L; var matrixU = factorLU.U; @@ -164,11 +166,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorLU.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -204,11 +206,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorLU.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -251,10 +253,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorLU.Solve(vectorb, resultx); @@ -298,11 +300,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); @@ -357,7 +359,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanInverse(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserQRTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserQRTests.cs index 3efce8a2..fbd84d28 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserQRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserQRTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32.Factorization; using MathNet.Numerics.LinearAlgebra.Factorization; using NUnit.Framework; @@ -138,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorQR = matrixA.QR(QRMethod.Full); var q = factorQR.Q; var r = factorQR.R; @@ -207,7 +208,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrixUsingThinQR(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorQR = matrixA.QR(QRMethod.Thin); var q = factorQR.Q; var r = factorQR.R; @@ -256,11 +257,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -296,11 +297,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -343,10 +344,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorQR.Solve(vectorb, resultx); @@ -390,11 +391,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); @@ -449,11 +450,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -489,11 +490,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -536,10 +537,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorQR.Solve(vectorb, resultx); @@ -583,11 +584,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserSvdTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserSvdTests.cs index 95f99498..ab4f3fa3 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserSvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Factorization/UserSvdTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization @@ -82,7 +83,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorSvd = matrixA.Svd(); var u = factorSvd.U; var vt = factorSvd.VT; @@ -122,7 +123,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(100, 93)] public void CanCheckRankOfNonSquare(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorSvd = matrixA.Svd(); var mn = Math.Min(row, column); @@ -141,7 +142,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(90)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorSvd = matrixA.Svd(); if (factorSvd.Determinant != 0) @@ -186,10 +187,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test] public void SolveMatrixIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 3); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(10, 3, 1).ToArray()); var factorSvd = matrixA.Svd(false); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 3); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(10, 3, 1).ToArray()); Assert.Throws(() => factorSvd.Solve(matrixB)); } @@ -199,10 +200,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [Test] public void SolveVectorIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 3); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(10, 3, 1).ToArray()); var factorSvd = matrixA.Svd(false); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(3); + var vectorb = new UserDefinedVector(Vector.Build.Random(3, 1).ToArray()); Assert.Throws(() => factorSvd.Solve(vectorb)); } @@ -219,11 +220,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(90, 100)] public void CanSolveForRandomVector(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(row); + var vectorb = new UserDefinedVector(Vector.Build.Random(row, 1).ToArray()); var resultx = factorSvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -260,11 +261,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixX = factorSvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -308,10 +309,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(90, 100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(row); + var vectorb = new UserDefinedVector(Vector.Build.Random(row, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(column); factorSvd.Solve(vectorb, resultx); @@ -354,11 +355,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(column, column); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs index 9f53a8ac..bdcd33ec 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs @@ -66,21 +66,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 /// A matrix with the given values. protected abstract Matrix CreateMatrix(Complex32[,] data); - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected abstract Vector CreateVector(int size); - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected abstract Vector CreateVector(Complex32[] data); - /// /// Setup test matrices. /// @@ -104,35 +89,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 TestMatrices.Add(name, CreateMatrix(TestData2D[name])); } } - - public static Matrix GenerateRandomDenseMatrix(int row, int col) - { - return Matrix.Build.Random(row, col, 1); - } - - public static Matrix GenerateRandomPositiveDefiniteHermitianDenseMatrix(int order) - { - return Matrix.Build.RandomPositiveDefinite(order, 1); - } - - public static Vector GenerateRandomDenseVector(int order) - { - return Vector.Build.Random(order, 1); - } - - public static Matrix GenerateRandomUserDefinedMatrix(int row, int col) - { - return new UserDefinedMatrix(GenerateRandomDenseMatrix(row, col).ToArray()); - } - - public static Matrix GenerateRandomPositiveDefiniteHermitianUserDefinedMatrix(int order) - { - return new UserDefinedMatrix(GenerateRandomPositiveDefiniteHermitianDenseMatrix(order).ToArray()); - } - - public static Vector GenerateRandomUserDefinedVector(int order) - { - return new UserDefinedVector(GenerateRandomDenseVector(order).ToArray()); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs index 38b4cd5d..313c7217 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixTests.cs @@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [TestCase("Wide2x3")] public void CanTransposeMatrix(string name) { - var matrix = CreateMatrix(TestData2D[name]); + var matrix = TestMatrices[name]; var transpose = matrix.Transpose(); Assert.AreNotSame(matrix, transpose); @@ -70,7 +70,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [TestCase("Wide2x3")] public void CanConjugateTransposeMatrix(string name) { - var matrix = CreateMatrix(TestData2D[name]); + var matrix = TestMatrices[name]; var transpose = matrix.ConjugateTranspose(); Assert.AreNotSame(matrix, transpose); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs index 88e95373..1224cb09 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/BiCgStabTest.cs @@ -29,6 +29,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Complex32; using MathNet.Numerics.LinearAlgebra.Complex32.Solvers; using MathNet.Numerics.LinearAlgebra.Solvers; @@ -251,8 +252,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var iteration = 5; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -293,8 +294,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var iteration = 5; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs index a85196cf..aeafee43 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/GpBiCgTest.cs @@ -252,8 +252,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var iteration = 5; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs index b01ec206..beb0fee3 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/MlkBiCgStabTest.cs @@ -252,8 +252,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var iteration = 5; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -294,8 +294,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var iteration = 5; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs index 60cfa7a9..76d34228 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/Solvers/Iterative/TFQMRTest.cs @@ -252,8 +252,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var iteration = 5; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -294,8 +294,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Solvers.Iterat { for (var iteration = 5; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/SparseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/SparseMatrixTests.cs index e8e904a7..498751d5 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/SparseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/SparseMatrixTests.cs @@ -64,27 +64,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 return SparseMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new SparseVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(Complex32[] data) - { - return SparseVector.OfEnumerable(data); - } - /// /// Can create a matrix form array. /// diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/UserDefinedMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/UserDefinedMatrixTests.cs index a1fe69cc..1932d968 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/UserDefinedMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/UserDefinedMatrixTests.cs @@ -55,26 +55,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 { return new UserDefinedMatrix(data); } - - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new UserDefinedVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(Complex32[] data) - { - return new UserDefinedVector(data); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs index a55d1012..aaa19624 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DenseMatrixTests.cs @@ -62,27 +62,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double return Matrix.Build.DenseOfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return Vector.Build.Dense(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(double[] data) - { - return Vector.Build.Dense(data); - } - /// /// Can create a matrix form array. /// diff --git a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs index 6201beab..e1febf20 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs @@ -62,7 +62,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double TestMatrices = new Dictionary>(); foreach (var name in TestData2D.Keys) { - TestMatrices.Add(name, CreateMatrix(TestData2D[name])); + TestMatrices.Add(name, DiagonalMatrix.OfArray(TestData2D[name])); } } @@ -87,27 +87,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double return DiagonalMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return Vector.Build.Dense(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(double[] data) - { - return Vector.Build.Dense(data); - } - /// /// Can create a matrix from a diagonal array. /// @@ -234,7 +213,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void PermuteMatrixRowsThrowsInvalidOperationException() { - var matrixp = CreateMatrix(TestData2D["Singular3x3"]); + var matrixp = DiagonalMatrix.OfArray(TestData2D["Singular3x3"]); var permutation = new Permutation(new[] {2, 0, 1}); Assert.Throws(() => matrixp.PermuteRows(permutation)); } @@ -245,7 +224,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void PermuteMatrixColumnsThrowsInvalidOperationException() { - var matrixp = CreateMatrix(TestData2D["Singular3x3"]); + var matrixp = DiagonalMatrix.OfArray(TestData2D["Singular3x3"]); var permutation = new Permutation(new[] {2, 0, 1}); Assert.Throws(() => matrixp.PermuteColumns(permutation)); } diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs index c73105d3..8bf0b2d5 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/CholeskyTests.cs @@ -108,7 +108,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixX = Matrix.Build.RandomPositiveDefinite(order, 1); var chol = matrixX.Cholesky(); var factorC = chol.Factor; @@ -148,10 +148,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseVector(order); + var matrixB = Vector.Build.Random(order, 1); var x = chol.Solve(matrixB); Assert.AreEqual(matrixB.Count, x.Count); @@ -187,10 +187,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrix(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(row); + var matrixA = Matrix.Build.RandomPositiveDefinite(row, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, col); + var matrixB = Matrix.Build.Random(row, col, 1); var matrixX = chol.Solve(matrixB); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); @@ -229,10 +229,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseVector(order); + var matrixB = Vector.Build.Random(order, 1); var matrixBCopy = matrixB.Clone(); var x = new DenseVector(order); chol.Solve(matrixB, x); @@ -276,10 +276,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(row); + var matrixA = Matrix.Build.RandomPositiveDefinite(row, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, col); + var matrixB = Matrix.Build.Random(row, col, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(row, col); chol.Solve(matrixB, matrixX); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs index d2d7990e..24693149 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/EvdTests.cs @@ -80,7 +80,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -116,7 +116,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanFactorizeRandomSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; @@ -149,7 +149,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorEvd = matrixA.Evd(); Assert.AreEqual(factorEvd.Rank, order); @@ -208,12 +208,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorEvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -250,12 +250,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorEvd.Solve(matrixB); @@ -299,11 +299,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorEvd.Solve(vectorb, resultx); @@ -345,12 +345,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs index 3f134cb4..6352e941 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/GramSchmidtTests.cs @@ -121,7 +121,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorGramSchmidt = matrixA.GramSchmidt(); var q = factorGramSchmidt.Q; var r = factorGramSchmidt.R; @@ -169,11 +169,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorGramSchmidt.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -208,11 +208,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorGramSchmidt.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -254,10 +254,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorGramSchmidt.Solve(vectorb, resultx); @@ -300,11 +300,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -352,11 +352,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void CanSolveForMatrixWithTallRandomMatrix() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(20, 5); + var matrixB = Matrix.Build.Random(20, 5, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -391,11 +391,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void CanSolveForVectorWithTallRandomMatrix() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.GramSchmidt(); - var vectorB = MatrixLoader.GenerateRandomDenseVector(20); + var vectorB = Vector.Build.Random(20, 1); var vectorX = factorQR.Solve(vectorB); // The solution x dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs index fffc3e36..6a28d71a 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/LUTests.cs @@ -109,7 +109,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixX = Matrix.Build.Random(order, order, 1); var factorLU = matrixX.LU(); var matrixL = factorLU.L; var matrixU = factorLU.U; @@ -164,11 +164,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorLU.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -203,11 +203,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorLU.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -249,10 +249,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorLU.Solve(vectorb, resultx); @@ -295,11 +295,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -353,7 +353,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanInverse(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs index b7250367..d4281a79 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/QRTests.cs @@ -138,7 +138,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorQR = matrixA.QR(QRMethod.Full); var q = factorQR.Q; var r = factorQR.R; @@ -204,7 +204,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrixUsingThinQR(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorQR = matrixA.QR(QRMethod.Thin); var q = factorQR.Q; var r = factorQR.R; @@ -269,11 +269,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -308,11 +308,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -354,10 +354,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorQR.Solve(vectorb, resultx); @@ -400,11 +400,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -458,11 +458,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -497,11 +497,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -543,10 +543,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorQR.Solve(vectorb, resultx); @@ -589,11 +589,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -643,11 +643,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(QRMethod.Thin)] public void CanSolveForMatrixWithTallRandomMatrix(QRMethod method) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(method); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(20, 5); + var matrixB = Matrix.Build.Random(20, 5, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -684,11 +684,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(QRMethod.Thin)] public void CanSolveForVectorWithTallRandomMatrix(QRMethod method) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(method); - var vectorB = MatrixLoader.GenerateRandomDenseVector(20); + var vectorB = Vector.Build.Random(20, 1); var vectorX = factorQR.Solve(vectorB); // The solution x dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs index e6b327d6..43d93015 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/SvdTests.cs @@ -82,7 +82,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorSvd = matrixA.Svd(); var u = factorSvd.U; var vt = factorSvd.VT; @@ -121,7 +121,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 93)] public void CanCheckRankOfNonSquare(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorSvd = matrixA.Svd(); var mn = Math.Min(row, column); @@ -140,7 +140,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(90)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorSvd = matrixA.Svd(); if (factorSvd.Determinant != 0) @@ -185,10 +185,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void SolveMatrixIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(10, 10); + var matrixA = Matrix.Build.Random(10, 10, 1); var factorSvd = matrixA.Svd(false); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(10, 10); + var matrixB = Matrix.Build.Random(10, 10, 1); Assert.Throws(() => factorSvd.Solve(matrixB)); } @@ -198,10 +198,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void SolveVectorIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(10, 10); + var matrixA = Matrix.Build.Random(10, 10, 1); var factorSvd = matrixA.Svd(false); - var vectorb = MatrixLoader.GenerateRandomDenseVector(10); + var vectorb = Vector.Build.Random(10, 1); Assert.Throws(() => factorSvd.Solve(vectorb)); } @@ -218,11 +218,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(90, 100)] public void CanSolveForRandomVector(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(row); + var vectorb = Vector.Build.Random(row, 1); var resultx = factorSvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -258,11 +258,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixB = Matrix.Build.Random(row, column, 1); var matrixX = factorSvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -305,10 +305,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(90, 100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(row); + var vectorb = Vector.Build.Random(row, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(column); factorSvd.Solve(vectorb, resultx); @@ -350,11 +350,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixB = Matrix.Build.Random(row, column, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(column, column); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserCholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserCholeskyTests.cs index 21fc1a07..4faf2dae 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserCholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserCholeskyTests.cs @@ -24,11 +24,12 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization { - using System; - using NUnit.Framework; - /// /// Cholesky factorization tests for a user matrix. /// @@ -106,7 +107,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixX = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var chol = matrixX.Cholesky(); var factorC = chol.Factor; @@ -146,10 +147,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var b = MatrixLoader.GenerateRandomUserDefinedVector(order); + var b = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var x = chol.Solve(b); Assert.AreEqual(b.Count, x.Count); @@ -185,10 +186,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrix(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(row); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(row, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, col); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, col, 1).ToArray()); var matrixX = chol.Solve(matrixB); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); @@ -227,10 +228,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var b = MatrixLoader.GenerateRandomUserDefinedVector(order); + var b = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var matrixBCopy = b.Clone(); var x = new UserDefinedVector(order); chol.Solve(b, x); @@ -274,10 +275,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(row); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(row, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, col); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, col, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(row, col); chol.Solve(matrixB, matrixX); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserEvdTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserEvdTests.cs index 8917c218..dd5ec472 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserEvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserEvdTests.cs @@ -24,6 +24,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization @@ -78,7 +79,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -114,7 +115,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanFactorizeRandomSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -146,7 +147,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorEvd = matrixA.Evd(); Assert.AreEqual(factorEvd.Rank, order); @@ -204,11 +205,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorEvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -243,11 +244,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorEvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -289,10 +290,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorEvd.Solve(vectorb, resultx); @@ -333,11 +334,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserGramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserGramSchmidtTests.cs index 431a29c4..a825223c 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserGramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserGramSchmidtTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Double.Factorization; using NUnit.Framework; @@ -119,7 +120,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorGramSchmidt = matrixA.GramSchmidt(); var q = factorGramSchmidt.Q; var r = factorGramSchmidt.R; @@ -167,11 +168,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorGramSchmidt.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -206,11 +207,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorGramSchmidt.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -252,10 +253,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorGramSchmidt.Solve(vectorb, resultx); @@ -298,11 +299,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserLUTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserLUTests.cs index 1b116356..e3129f15 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserLUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserLUTests.cs @@ -24,11 +24,12 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization { - using System; - using NUnit.Framework; - /// /// LU factorization tests for a user matrix. /// @@ -107,7 +108,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixX = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorLU = matrixX.LU(); var matrixL = factorLU.L; var matrixU = factorLU.U; @@ -162,11 +163,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorLU.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -201,11 +202,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorLU.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -247,10 +248,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorLU.Solve(vectorb, resultx); @@ -293,11 +294,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); @@ -351,7 +352,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanInverse(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserQRTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserQRTests.cs index ac3210b2..e9e83a7f 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserQRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserQRTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Double.Factorization; using MathNet.Numerics.LinearAlgebra.Factorization; using NUnit.Framework; @@ -136,7 +137,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorQR = matrixA.QR(QRMethod.Full); var q = factorQR.Q; var r = factorQR.R; @@ -185,7 +186,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrixUsingThinQR(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorQR = matrixA.QR(QRMethod.Thin); var q = factorQR.Q; var r = factorQR.R; @@ -233,11 +234,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -272,11 +273,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -318,10 +319,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorQR.Solve(vectorb, resultx); @@ -364,11 +365,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); @@ -422,11 +423,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -461,11 +462,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -507,10 +508,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorQR.Solve(vectorb, resultx); @@ -553,11 +554,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserSvdTests.cs b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserSvdTests.cs index 1c02a9a7..90ec2048 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserSvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Factorization/UserSvdTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization @@ -80,7 +81,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorSvd = matrixA.Svd(); var u = factorSvd.U; var vt = factorSvd.VT; @@ -119,7 +120,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(100, 93)] public void CanCheckRankOfNonSquare(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorSvd = matrixA.Svd(); var mn = Math.Min(row, column); @@ -138,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(90)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorSvd = matrixA.Svd(); if (factorSvd.Determinant != 0) @@ -183,10 +184,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void SolveMatrixIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 10); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(10, 10, 1).ToArray()); var factorSvd = matrixA.Svd(false); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 10); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(10, 10, 1).ToArray()); Assert.Throws(() => factorSvd.Solve(matrixB)); } @@ -196,10 +197,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [Test] public void SolveVectorIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 10); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(10, 10, 1).ToArray()); var factorSvd = matrixA.Svd(false); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(10); + var vectorb = new UserDefinedVector(Vector.Build.Random(10, 1).ToArray()); Assert.Throws(() => factorSvd.Solve(vectorb)); } @@ -216,11 +217,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(90, 100)] public void CanSolveForRandomVector(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(row); + var vectorb = new UserDefinedVector(Vector.Build.Random(row, 1).ToArray()); var resultx = factorSvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -256,11 +257,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixX = factorSvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -303,10 +304,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(90, 100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(row); + var vectorb = new UserDefinedVector(Vector.Build.Random(row, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(column); factorSvd.Solve(vectorb, resultx); @@ -348,11 +349,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(column, column); diff --git a/src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs b/src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs index 8bca0ab7..2a505c45 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs @@ -64,21 +64,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double /// A matrix with the given values. protected abstract Matrix CreateMatrix(double[,] data); - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected abstract Vector CreateVector(int size); - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected abstract Vector CreateVector(double[] data); - /// /// Setup test matrices. /// @@ -102,35 +87,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double TestMatrices.Add(name, CreateMatrix(TestData2D[name])); } } - - public static Matrix GenerateRandomDenseMatrix(int row, int col) - { - return Matrix.Build.Random(row, col, 1); - } - - public static Matrix GenerateRandomPositiveDefiniteDenseMatrix(int order) - { - return Matrix.Build.RandomPositiveDefinite(order, 1); - } - - public static Vector GenerateRandomDenseVector(int order) - { - return Vector.Build.Random(order, 1); - } - - public static Matrix GenerateRandomUserDefinedMatrix(int row, int col) - { - return new UserDefinedMatrix(GenerateRandomDenseMatrix(row, col).ToArray()); - } - - public static Matrix GenerateRandomPositiveDefiniteUserDefinedMatrix(int order) - { - return new UserDefinedMatrix(GenerateRandomPositiveDefiniteDenseMatrix(order).ToArray()); - } - - public static Vector GenerateRandomUserDefinedVector(int order) - { - return new UserDefinedVector(GenerateRandomDenseVector(order).ToArray()); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs index 105e918f..4d58a443 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/MatrixTests.cs @@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [TestCase("Wide2x3")] public void CanTransposeMatrix(string name) { - var matrix = CreateMatrix(TestData2D[name]); + var matrix = TestMatrices[name]; var transpose = matrix.Transpose(); Assert.AreNotSame(matrix, transpose); diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs index edcdd56d..eec53e2e 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/BiCgStabTest.cs @@ -250,8 +250,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative [TestCase(10)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -280,8 +280,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative [TestCase(10)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs index 95baf807..9ddb9f9a 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/GpBiCgTest.cs @@ -250,8 +250,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative [TestCase(10)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -280,8 +280,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative [TestCase(10)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs index 40d453aa..9953755e 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/MlkBiCgStabTest.cs @@ -250,8 +250,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative [TestCase(10)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -280,8 +280,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative [TestCase(10)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs index c43a9cd8..ec85ddaa 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/Solvers/Iterative/TFQMRTest.cs @@ -250,8 +250,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative [TestCase(10)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), @@ -280,8 +280,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Solvers.Iterative [TestCase(10)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(1000), diff --git a/src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs index 2f028585..849e5780 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/SparseMatrixTests.cs @@ -62,27 +62,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double return Matrix.Build.SparseOfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return Vector.Build.Sparse(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(double[] data) - { - return Vector.Build.SparseOfEnumerable(data); - } - /// /// Can create a matrix form array. /// diff --git a/src/UnitTests/LinearAlgebraTests/Double/UserDefinedMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/UserDefinedMatrixTests.cs index 49ab237f..16e3a359 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/UserDefinedMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/UserDefinedMatrixTests.cs @@ -53,26 +53,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double { return new UserDefinedMatrix(data); } - - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new UserDefinedVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(double[] data) - { - return new UserDefinedVector(data); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/DenseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/DenseMatrixTests.cs index 348d090d..a21b68a8 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/DenseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/DenseMatrixTests.cs @@ -62,27 +62,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single return DenseMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new DenseVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(float[] data) - { - return new DenseVector(data); - } - /// /// Can create a matrix form array. /// diff --git a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs index 118cc55e..36c7e15a 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs @@ -62,7 +62,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single TestMatrices = new Dictionary>(); foreach (var name in TestData2D.Keys) { - TestMatrices.Add(name, CreateMatrix(TestData2D[name])); + TestMatrices.Add(name, DiagonalMatrix.OfArray(TestData2D[name])); } } @@ -87,27 +87,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single return DiagonalMatrix.OfArray(data); } - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new DenseVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(float[] data) - { - return new DenseVector(data); - } - /// /// Can create a matrix from a diagonal array. /// @@ -233,7 +212,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [Test] public void PermuteMatrixRowsThrowsInvalidOperationException() { - var matrixp = CreateMatrix(TestData2D["Singular3x3"]); + var matrixp = DiagonalMatrix.OfArray(TestData2D["Singular3x3"]); var permutation = new Permutation(new[] {2, 0, 1}); Assert.Throws(() => matrixp.PermuteRows(permutation)); } @@ -244,7 +223,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [Test] public void PermuteMatrixColumnsThrowsInvalidOperationException() { - var matrixp = CreateMatrix(TestData2D["Singular3x3"]); + var matrixp = DiagonalMatrix.OfArray(TestData2D["Singular3x3"]); var permutation = new Permutation(new[] {2, 0, 1}); Assert.Throws(() => matrixp.PermuteColumns(permutation)); } diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/CholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/CholeskyTests.cs index a3b9dcf9..dcc28f1a 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/CholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/CholeskyTests.cs @@ -24,9 +24,10 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Single; using NUnit.Framework; -using System; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization { @@ -107,7 +108,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixX = Matrix.Build.RandomPositiveDefinite(order, 1); var chol = matrixX.Cholesky(); var factorC = chol.Factor; @@ -147,10 +148,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseVector(order); + var matrixB = Vector.Build.Random(order, 1); var x = chol.Solve(matrixB); Assert.AreEqual(matrixB.Count, x.Count); @@ -186,10 +187,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrix(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(row); + var matrixA = Matrix.Build.RandomPositiveDefinite(row, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, col); + var matrixB = Matrix.Build.Random(row, col, 1); var matrixX = chol.Solve(matrixB); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); @@ -228,10 +229,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseVector(order); + var matrixB = Vector.Build.Random(order, 1); var matrixBCopy = matrixB.Clone(); var x = new DenseVector(order); chol.Solve(matrixB, x); @@ -275,10 +276,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(row); + var matrixA = Matrix.Build.RandomPositiveDefinite(row, 1); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, col); + var matrixB = Matrix.Build.Random(row, col, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(row, col); chol.Solve(matrixB, matrixX); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs index abb474d1..780919a2 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/EvdTests.cs @@ -24,6 +24,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Single; using NUnit.Framework; @@ -74,7 +75,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test] public void CanFactorizeRandomMatrix([Values(1, 2, 5, 10, 50, 100)] int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -105,7 +106,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test] public void CanFactorizeRandomSymmetricMatrix([Values(1, 2, 5, 10, 50)] int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; @@ -138,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorEvd = matrixA.Evd(); Assert.AreEqual(factorEvd.Rank, order); @@ -196,12 +197,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorEvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -237,12 +238,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorEvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -285,11 +286,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorEvd.Solve(vectorb, resultx); @@ -331,12 +332,12 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteDenseMatrix(order); + var matrixA = Matrix.Build.RandomPositiveDefinite(order, 1); MatrixHelpers.ForceSymmetric(matrixA); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs index b98a1273..28dff253 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/GramSchmidtTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Single; using MathNet.Numerics.LinearAlgebra.Single.Factorization; using NUnit.Framework; @@ -120,7 +121,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorGramSchmidt = matrixA.GramSchmidt(); var q = factorGramSchmidt.Q; var r = factorGramSchmidt.R; @@ -168,11 +169,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorGramSchmidt.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -207,11 +208,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorGramSchmidt.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -253,10 +254,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorGramSchmidt.Solve(vectorb, resultx); @@ -299,11 +300,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -351,11 +352,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test] public void CanSolveForMatrixWithTallRandomMatrix() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(20, 5); + var matrixB = Matrix.Build.Random(20, 5, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -390,11 +391,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test] public void CanSolveForVectorWithTallRandomMatrix() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.GramSchmidt(); - var vectorB = MatrixLoader.GenerateRandomDenseVector(20); + var vectorB = Vector.Build.Random(20, 1); var vectorX = factorQR.Solve(vectorB); // The solution x dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/LUTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/LUTests.cs index faa54d40..5f19c8bc 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/LUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/LUTests.cs @@ -24,9 +24,10 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Single; using NUnit.Framework; -using System; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization { @@ -108,7 +109,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixX = Matrix.Build.Random(order, order, 1); var factorLU = matrixX.LU(); var matrixL = factorLU.L; var matrixU = factorLU.U; @@ -163,11 +164,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorLU.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -202,11 +203,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorLU.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -248,10 +249,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorLU.Solve(vectorb, resultx); @@ -294,11 +295,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -352,7 +353,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanInverse(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs index 78429ec7..e628969c 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/QRTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Factorization; using MathNet.Numerics.LinearAlgebra.Single; using MathNet.Numerics.LinearAlgebra.Single.Factorization; @@ -138,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorQR = matrixA.QR(QRMethod.Full); var q = factorQR.Q; var r = factorQR.R; @@ -205,7 +206,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrixUsingThinQR(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorQR = matrixA.QR(QRMethod.Thin); var q = factorQR.Q; var r = factorQR.R; @@ -270,11 +271,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -309,11 +310,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -355,10 +356,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorQR.Solve(vectorb, resultx); @@ -401,11 +402,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -458,11 +459,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -497,11 +498,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -543,10 +544,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var vectorb = Vector.Build.Random(order, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(order); factorQR.Solve(vectorb, resultx); @@ -589,11 +590,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixB = Matrix.Build.Random(order, order, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(order, order); @@ -643,11 +644,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(QRMethod.Thin)] public void CanSolveForMatrixWithTallRandomMatrix(QRMethod method) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(method); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(20, 5); + var matrixB = Matrix.Build.Random(20, 5, 1); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -684,11 +685,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(QRMethod.Thin)] public void CanSolveForVectorWithTallRandomMatrix(QRMethod method) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(20, 10); + var matrixA = Matrix.Build.Random(20, 10, 1); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(method); - var vectorB = MatrixLoader.GenerateRandomDenseVector(20); + var vectorB = Vector.Build.Random(20, 1); var vectorX = factorQR.Solve(vectorB); // The solution x dimension is equal to the column dimension of A diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/SvdTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/SvdTests.cs index cc639733..1bcc0772 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/SvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/SvdTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Single; using NUnit.Framework; @@ -81,7 +82,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorSvd = matrixA.Svd(); var u = factorSvd.U; var vt = factorSvd.VT; @@ -120,7 +121,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 93)] public void CanCheckRankOfNonSquare(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var factorSvd = matrixA.Svd(); var mn = Math.Min(row, column); @@ -139,7 +140,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(90)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); var factorSvd = matrixA.Svd(); if (factorSvd.Determinant != 0) @@ -184,10 +185,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test] public void SolveMatrixIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(10, 10); + var matrixA = Matrix.Build.Random(10, 10, 1); var factorSvd = matrixA.Svd(false); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(10, 10); + var matrixB = Matrix.Build.Random(10, 10, 1); Assert.Throws(() => factorSvd.Solve(matrixB)); } @@ -197,10 +198,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test] public void SolveVectorIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(10, 10); + var matrixA = Matrix.Build.Random(10, 10, 1); var factorSvd = matrixA.Svd(false); - var vectorb = MatrixLoader.GenerateRandomDenseVector(10); + var vectorb = Vector.Build.Random(10, 1); Assert.Throws(() => factorSvd.Solve(vectorb)); } @@ -217,11 +218,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(90, 100)] public void CanSolveForRandomVector(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(row); + var vectorb = Vector.Build.Random(row, 1); var resultx = factorSvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -257,11 +258,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixB = Matrix.Build.Random(row, column, 1); var matrixX = factorSvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -304,10 +305,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(90, 100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomDenseVector(row); + var vectorb = Vector.Build.Random(row, 1); var vectorbCopy = vectorb.Clone(); var resultx = new DenseVector(column); factorSvd.Solve(vectorb, resultx); @@ -349,11 +350,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixA = Matrix.Build.Random(row, column, 1); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(row, column); + var matrixB = Matrix.Build.Random(row, column, 1); var matrixBCopy = matrixB.Clone(); var matrixX = new DenseMatrix(column, column); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserCholeskyTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserCholeskyTests.cs index 17dd0756..f7de4783 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserCholeskyTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserCholeskyTests.cs @@ -24,11 +24,12 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization { - using System; - using NUnit.Framework; - /// /// Cholesky factorization tests for a user matrix. /// @@ -106,7 +107,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixX = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var chol = matrixX.Cholesky(); var factorC = chol.Factor; @@ -146,10 +147,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var b = MatrixLoader.GenerateRandomUserDefinedVector(order); + var b = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var x = chol.Solve(b); Assert.AreEqual(b.Count, x.Count); @@ -185,10 +186,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrix(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(row); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(row, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, col); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, col, 1).ToArray()); var matrixX = chol.Solve(matrixB); Assert.AreEqual(matrixB.RowCount, matrixX.RowCount); @@ -227,10 +228,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var b = MatrixLoader.GenerateRandomUserDefinedVector(order); + var b = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var matrixBCopy = b.Clone(); var x = new UserDefinedVector(order); chol.Solve(b, x); @@ -274,10 +275,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int col) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(row); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(row, 1).ToArray()); var matrixACopy = matrixA.Clone(); var chol = matrixA.Cholesky(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, col); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, col, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(row, col); chol.Solve(matrixB, matrixX); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserEvdTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserEvdTests.cs index 2aec6a29..b7395582 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserEvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserEvdTests.cs @@ -24,6 +24,7 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization @@ -78,7 +79,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -109,7 +110,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test, Ignore] public void CanFactorizeRandomSymmetricMatrix([Values(1, 2, 5, 10, 50, 100)] int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var factorEvd = matrixA.Evd(); var eigenVectors = factorEvd.EigenVectors; var d = factorEvd.D; @@ -141,7 +142,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorEvd = matrixA.Evd(); Assert.AreEqual(factorEvd.Rank, order); @@ -199,11 +200,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorEvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -238,11 +239,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorEvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -284,10 +285,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorAndSymmetricMatrixWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorEvd.Solve(vectorb, resultx); @@ -328,11 +329,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixAndSymmetricMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomPositiveDefiniteUserDefinedMatrix(order); + var matrixA = new UserDefinedMatrix(Matrix.Build.RandomPositiveDefinite(order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorEvd = matrixA.Evd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserGramSchmidtTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserGramSchmidtTests.cs index 331acb85..d1e33b05 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserGramSchmidtTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserGramSchmidtTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Single.Factorization; using NUnit.Framework; @@ -119,7 +120,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorGramSchmidt = matrixA.GramSchmidt(); var q = factorGramSchmidt.Q; var r = factorGramSchmidt.R; @@ -167,11 +168,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorGramSchmidt.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -206,11 +207,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorGramSchmidt.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -252,10 +253,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorGramSchmidt.Solve(vectorb, resultx); @@ -298,11 +299,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorGramSchmidt = matrixA.GramSchmidt(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserLUTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserLUTests.cs index d4dca789..971a050c 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserLUTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserLUTests.cs @@ -24,11 +24,12 @@ // OTHER DEALINGS IN THE SOFTWARE. // +using System; +using MathNet.Numerics.LinearAlgebra; +using NUnit.Framework; + namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization { - using System; - using NUnit.Framework; - /// /// LU factorization tests for a user matrix. /// @@ -107,7 +108,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanFactorizeRandomMatrix(int order) { - var matrixX = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixX = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorLU = matrixX.LU(); var matrixL = factorLU.L; var matrixU = factorLU.U; @@ -162,11 +163,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorLU.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -201,11 +202,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorLU.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -247,10 +248,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorLU.Solve(vectorb, resultx); @@ -293,11 +294,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); @@ -351,7 +352,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanInverse(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorLU = matrixA.LU(); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserQRTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserQRTests.cs index ccdede6e..1943f4a4 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserQRTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserQRTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using MathNet.Numerics.LinearAlgebra.Factorization; using MathNet.Numerics.LinearAlgebra.Single.Factorization; using NUnit.Framework; @@ -136,7 +137,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorQR = matrixA.QR(QRMethod.Full); var q = factorQR.Q; var r = factorQR.R; @@ -185,7 +186,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrixUsingThinQR(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorQR = matrixA.QR(QRMethod.Thin); var q = factorQR.Q; var r = factorQR.R; @@ -233,11 +234,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVector(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -272,11 +273,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrix(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -318,10 +319,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorQR.Solve(vectorb, resultx); @@ -364,11 +365,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); @@ -422,11 +423,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var resultx = factorQR.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -461,11 +462,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixX = factorQR.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -507,10 +508,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomVectorWhenResultVectorGivenUsingThinQR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(order); + var vectorb = new UserDefinedVector(Vector.Build.Random(order, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(order); factorQR.Solve(vectorb, resultx); @@ -553,11 +554,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100)] public void CanSolveForRandomMatrixWhenResultMatrixGivenUsingThinAR(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorQR = matrixA.QR(QRMethod.Thin); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(order, order); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserSvdTests.cs b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserSvdTests.cs index f89e576f..b267764b 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserSvdTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Factorization/UserSvdTests.cs @@ -25,6 +25,7 @@ // using System; +using MathNet.Numerics.LinearAlgebra; using NUnit.Framework; namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization @@ -80,7 +81,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 98)] public void CanFactorizeRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorSvd = matrixA.Svd(); var u = factorSvd.U; var vt = factorSvd.VT; @@ -119,7 +120,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(100, 93)] public void CanCheckRankOfNonSquare(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var factorSvd = matrixA.Svd(); var mn = Math.Min(row, column); @@ -138,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(90)] public void CanCheckRankSquare(int order) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(order, order); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(order, order, 1).ToArray()); var factorSvd = matrixA.Svd(); if (factorSvd.Determinant != 0) @@ -183,10 +184,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test] public void SolveMatrixIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 10); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(10, 10, 1).ToArray()); var factorSvd = matrixA.Svd(false); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 10); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(10, 10, 1).ToArray()); Assert.Throws(() => factorSvd.Solve(matrixB)); } @@ -196,10 +197,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [Test] public void SolveVectorIfVectorsNotComputedThrowsInvalidOperationException() { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(10, 10); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(10, 10, 1).ToArray()); var factorSvd = matrixA.Svd(false); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(10); + var vectorb = new UserDefinedVector(Vector.Build.Random(10, 1).ToArray()); Assert.Throws(() => factorSvd.Solve(vectorb)); } @@ -216,11 +217,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(90, 100)] public void CanSolveForRandomVector(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(row); + var vectorb = new UserDefinedVector(Vector.Build.Random(row, 1).ToArray()); var resultx = factorSvd.Solve(vectorb); Assert.AreEqual(matrixA.ColumnCount, resultx.Count); @@ -256,11 +257,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrix(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixX = factorSvd.Solve(matrixB); // The solution X row dimension is equal to the column dimension of A @@ -303,10 +304,10 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(90, 100)] public void CanSolveForRandomVectorWhenResultVectorGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var vectorb = MatrixLoader.GenerateRandomUserDefinedVector(row); + var vectorb = new UserDefinedVector(Vector.Build.Random(row, 1).ToArray()); var vectorbCopy = vectorb.Clone(); var resultx = new UserDefinedVector(column); factorSvd.Solve(vectorb, resultx); @@ -348,11 +349,11 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization [TestCase(80, 100)] public void CanSolveForRandomMatrixWhenResultMatrixGiven(int row, int column) { - var matrixA = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixA = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixACopy = matrixA.Clone(); var factorSvd = matrixA.Svd(); - var matrixB = MatrixLoader.GenerateRandomUserDefinedMatrix(row, column); + var matrixB = new UserDefinedMatrix(Matrix.Build.Random(row, column, 1).ToArray()); var matrixBCopy = matrixB.Clone(); var matrixX = new UserDefinedMatrix(column, column); diff --git a/src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs b/src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs index f7b24ac0..b7a3da5e 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs @@ -64,21 +64,6 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single /// A matrix with the given values. protected abstract Matrix CreateMatrix(float[,] data); - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected abstract Vector CreateVector(int size); - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected abstract Vector CreateVector(float[] data); - /// /// Setup test matrices. /// @@ -102,35 +87,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single TestMatrices.Add(name, CreateMatrix(TestData2D[name])); } } - - public static Matrix GenerateRandomDenseMatrix(int row, int col) - { - return Matrix.Build.Random(row, col, 1); - } - - public static Matrix GenerateRandomPositiveDefiniteDenseMatrix(int order) - { - return Matrix.Build.RandomPositiveDefinite(order, 1); - } - - public static Vector GenerateRandomDenseVector(int order) - { - return Vector.Build.Random(order, 1); - } - - public static Matrix GenerateRandomUserDefinedMatrix(int row, int col) - { - return new UserDefinedMatrix(GenerateRandomDenseMatrix(row, col).ToArray()); - } - - public static Matrix GenerateRandomPositiveDefiniteUserDefinedMatrix(int order) - { - return new UserDefinedMatrix(GenerateRandomPositiveDefiniteDenseMatrix(order).ToArray()); - } - - public static Vector GenerateRandomUserDefinedVector(int order) - { - return new UserDefinedVector(GenerateRandomDenseVector(order).ToArray()); - } } } diff --git a/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs index 9fc6b067..c4b9371a 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/MatrixTests.cs @@ -44,7 +44,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [TestCase("Wide2x3")] public void CanTransposeMatrix(string name) { - var matrix = CreateMatrix(TestData2D[name]); + var matrix = TestMatrices[name]; var transpose = matrix.Transpose(); Assert.AreNotSame(matrix, transpose); diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs index 9e66330a..55e15a2f 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/BiCgStabTest.cs @@ -252,8 +252,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // That's why we will do 3 tries and downgrade stop criterium each time for (var iteration = 6; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(MaximumIterations), @@ -292,8 +292,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // That's why we will do 3 tries and downgrade stop criterium each time for (var iteration = 6; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(MaximumIterations), diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs index ab0336eb..5d95b3c2 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/GpBiCgTest.cs @@ -252,8 +252,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // That's why we will do 3 tries and downgrade stop criterium each time for (var iteration = 6; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(MaximumIterations), @@ -292,8 +292,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // That's why we will do 3 tries and downgrade stop criterium each time for (var iteration = 6; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(MaximumIterations), diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs index b89b9517..f7d508eb 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/MlkBiCgStabTest.cs @@ -269,8 +269,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // That's why we will do 4 tries and downgrade stop criterium each time for (var iteration = 6; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(MaximumIterations), @@ -311,8 +311,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // That's why we will do 4 tries and downgrade stop criterium each time for (var iteration = 6; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(MaximumIterations), diff --git a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs index 813b7e62..78f5795c 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/Solvers/Iterative/TFQMRTest.cs @@ -252,8 +252,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // That's why we will do 3 tries and downgrade stop criterium each time for (var iteration = 6; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var vectorb = MatrixLoader.GenerateRandomDenseVector(order); + var matrixA = Matrix.Build.Random(order, order, 1); + var vectorb = Vector.Build.Random(order, 1); var monitor = new Iterator( new IterationCountStopCriterium(MaximumIterations), @@ -292,8 +292,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Solvers.Iterative // That's why we will do 4 tries and downgrade stop criterium each time for (var iteration = 6; iteration > 3; iteration--) { - var matrixA = MatrixLoader.GenerateRandomDenseMatrix(order, order); - var matrixB = MatrixLoader.GenerateRandomDenseMatrix(order, order); + var matrixA = Matrix.Build.Random(order, order, 1); + var matrixB = Matrix.Build.Random(order, order, 1); var monitor = new Iterator( new IterationCountStopCriterium(MaximumIterations), diff --git a/src/UnitTests/LinearAlgebraTests/Single/SparseMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/SparseMatrixTests.cs index 8785b0d0..5511c6e4 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/SparseMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/SparseMatrixTests.cs @@ -68,7 +68,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single /// The size of the vector to create. /// /// The new vector. - protected override Vector CreateVector(int size) + protected virtual Vector CreateVector(int size) { return new SparseVector(size); } @@ -78,7 +78,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single /// /// The array to create this vector from. /// The new vector. - protected override Vector CreateVector(float[] data) + protected virtual Vector CreateVector(float[] data) { return SparseVector.OfEnumerable(data); } diff --git a/src/UnitTests/LinearAlgebraTests/Single/UserDefinedMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/UserDefinedMatrixTests.cs index afccf8cd..1820fd27 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/UserDefinedMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/UserDefinedMatrixTests.cs @@ -53,26 +53,5 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single { return new UserDefinedMatrix(data); } - - /// - /// Creates a vector of the given size. - /// - /// The size of the vector to create. - /// - /// The new vector. - protected override Vector CreateVector(int size) - { - return new UserDefinedVector(size); - } - - /// - /// Creates a vector from an array. - /// - /// The array to create this vector from. - /// The new vector. - protected override Vector CreateVector(float[] data) - { - return new UserDefinedVector(data); - } } }