From 9e8df1d13317e019fcdad78c87b07a2ef41c13c9 Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Thu, 30 Apr 2020 13:39:12 +0200 Subject: [PATCH] Tests: linear algebra Cholesky tests adjust required accuracy #690 --- .../Factorization/UserCholeskyTests.cs | 2 +- .../Complex32/Factorization/CholeskyTests.cs | 7 +++-- .../Factorization/UserCholeskyTests.cs | 3 +- .../Double/Factorization/UserCholeskyTests.cs | 2 +- .../Single/Factorization/UserCholeskyTests.cs | 2 +- .../Double/LinearAlgebraProviderTests.cs | 30 +++++++++---------- 6 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/Numerics.Tests/LinearAlgebraTests/Complex/Factorization/UserCholeskyTests.cs b/src/Numerics.Tests/LinearAlgebraTests/Complex/Factorization/UserCholeskyTests.cs index c24869c3..d3a2c662 100644 --- a/src/Numerics.Tests/LinearAlgebraTests/Complex/Factorization/UserCholeskyTests.cs +++ b/src/Numerics.Tests/LinearAlgebraTests/Complex/Factorization/UserCholeskyTests.cs @@ -147,7 +147,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex.Factorization { for (var j = 0; j < matrixC.ColumnCount; j++) { - Assert.AreEqual(cholC.Factor[i, j], chol.Factor[i, j]); + AssertHelpers.AlmostEqualRelative(cholC.Factor[i, j], chol.Factor[i, j], 8); } } diff --git a/src/Numerics.Tests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs b/src/Numerics.Tests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs index a76c39ec..bc049d6a 100644 --- a/src/Numerics.Tests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs +++ b/src/Numerics.Tests/LinearAlgebraTests/Complex32/Factorization/CholeskyTests.cs @@ -149,7 +149,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization { for (var j = 0; j < matrixC.ColumnCount; j++) { - Assert.AreEqual(cholC.Factor[i, j], chol.Factor[i, j]); + Assert.AreEqual(cholC.Factor[i, j].Real, chol.Factor[i, j].Real, 1e-3f); + Assert.AreEqual(cholC.Factor[i, j].Imaginary, chol.Factor[i, j].Imaginary, 1e-3f); } } @@ -226,8 +227,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization { for (var j = 0; j < matrixB.ColumnCount; j++) { - Assert.AreEqual(matrixB[i, j].Real, matrixBReconstruct[i, j].Real, 0.02f); - Assert.AreEqual(matrixB[i, j].Imaginary, matrixBReconstruct[i, j].Imaginary, 0.02f); + Assert.AreEqual(matrixB[i, j].Real, matrixBReconstruct[i, j].Real, 0.03f); + Assert.AreEqual(matrixB[i, j].Imaginary, matrixBReconstruct[i, j].Imaginary, 0.03f); } } diff --git a/src/Numerics.Tests/LinearAlgebraTests/Complex32/Factorization/UserCholeskyTests.cs b/src/Numerics.Tests/LinearAlgebraTests/Complex32/Factorization/UserCholeskyTests.cs index c76c804b..6d18028d 100644 --- a/src/Numerics.Tests/LinearAlgebraTests/Complex32/Factorization/UserCholeskyTests.cs +++ b/src/Numerics.Tests/LinearAlgebraTests/Complex32/Factorization/UserCholeskyTests.cs @@ -148,7 +148,8 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32.Factorization { for (var j = 0; j < matrixC.ColumnCount; j++) { - Assert.AreEqual(cholC.Factor[i, j], chol.Factor[i, j]); + Assert.AreEqual(cholC.Factor[i, j].Real, chol.Factor[i, j].Real, 1e-3f); + Assert.AreEqual(cholC.Factor[i, j].Imaginary, chol.Factor[i, j].Imaginary, 1e-3f); } } diff --git a/src/Numerics.Tests/LinearAlgebraTests/Double/Factorization/UserCholeskyTests.cs b/src/Numerics.Tests/LinearAlgebraTests/Double/Factorization/UserCholeskyTests.cs index b3b4bae3..4b840767 100644 --- a/src/Numerics.Tests/LinearAlgebraTests/Double/Factorization/UserCholeskyTests.cs +++ b/src/Numerics.Tests/LinearAlgebraTests/Double/Factorization/UserCholeskyTests.cs @@ -145,7 +145,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double.Factorization { for (var j = 0; j < matrixC.ColumnCount; j++) { - Assert.AreEqual(cholC.Factor[i, j], chol.Factor[i, j]); + Assert.AreEqual(cholC.Factor[i, j], chol.Factor[i, j], 1.0e-11); } } diff --git a/src/Numerics.Tests/LinearAlgebraTests/Single/Factorization/UserCholeskyTests.cs b/src/Numerics.Tests/LinearAlgebraTests/Single/Factorization/UserCholeskyTests.cs index d225442e..0a092402 100644 --- a/src/Numerics.Tests/LinearAlgebraTests/Single/Factorization/UserCholeskyTests.cs +++ b/src/Numerics.Tests/LinearAlgebraTests/Single/Factorization/UserCholeskyTests.cs @@ -145,7 +145,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single.Factorization { for (var j = 0; j < matrixC.ColumnCount; j++) { - Assert.AreEqual(cholC.Factor[i, j], chol.Factor[i, j]); + Assert.AreEqual(cholC.Factor[i, j], chol.Factor[i, j], 1e-1); } } diff --git a/src/Numerics.Tests/Providers/LinearAlgebra/Double/LinearAlgebraProviderTests.cs b/src/Numerics.Tests/Providers/LinearAlgebra/Double/LinearAlgebraProviderTests.cs index 51598382..623de83c 100644 --- a/src/Numerics.Tests/Providers/LinearAlgebra/Double/LinearAlgebraProviderTests.cs +++ b/src/Numerics.Tests/Providers/LinearAlgebra/Double/LinearAlgebraProviderTests.cs @@ -942,15 +942,15 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Double var mV = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, vt); var result = mU*w*mV; - AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 14); - AssertHelpers.AlmostEqualRelative(matrix[1, 0], result[1, 0], 14); - AssertHelpers.AlmostEqualRelative(matrix[2, 0], result[2, 0], 14); - AssertHelpers.AlmostEqualRelative(matrix[0, 1], result[0, 1], 14); - AssertHelpers.AlmostEqualRelative(matrix[1, 1], result[1, 1], 14); - AssertHelpers.AlmostEqualRelative(matrix[2, 1], result[2, 1], 14); - AssertHelpers.AlmostEqualRelative(matrix[0, 2], result[0, 2], 14); - AssertHelpers.AlmostEqualRelative(matrix[1, 2], result[1, 2], 14); - AssertHelpers.AlmostEqualRelative(matrix[2, 2], result[2, 2], 14); + AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 13); + AssertHelpers.AlmostEqualRelative(matrix[1, 0], result[1, 0], 13); + AssertHelpers.AlmostEqualRelative(matrix[2, 0], result[2, 0], 13); + AssertHelpers.AlmostEqualRelative(matrix[0, 1], result[0, 1], 13); + AssertHelpers.AlmostEqualRelative(matrix[1, 1], result[1, 1], 13); + AssertHelpers.AlmostEqualRelative(matrix[2, 1], result[2, 1], 13); + AssertHelpers.AlmostEqualRelative(matrix[0, 2], result[0, 2], 13); + AssertHelpers.AlmostEqualRelative(matrix[1, 2], result[1, 2], 13); + AssertHelpers.AlmostEqualRelative(matrix[2, 2], result[2, 2], 13); } /// @@ -979,12 +979,12 @@ namespace MathNet.Numerics.UnitTests.Providers.LinearAlgebra.Double var mV = Matrix.Build.Dense(matrix.ColumnCount, matrix.ColumnCount, vt); var result = mU*w*mV; - AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 14); - AssertHelpers.AlmostEqualRelative(matrix[1, 0], result[1, 0], 14); - AssertHelpers.AlmostEqualRelative(matrix[2, 0], result[2, 0], 14); - AssertHelpers.AlmostEqualRelative(matrix[0, 1], result[0, 1], 14); - AssertHelpers.AlmostEqualRelative(matrix[1, 1], result[1, 1], 14); - AssertHelpers.AlmostEqualRelative(matrix[2, 1], result[2, 1], 14); + AssertHelpers.AlmostEqualRelative(matrix[0, 0], result[0, 0], 13); + AssertHelpers.AlmostEqualRelative(matrix[1, 0], result[1, 0], 13); + AssertHelpers.AlmostEqualRelative(matrix[2, 0], result[2, 0], 13); + AssertHelpers.AlmostEqualRelative(matrix[0, 1], result[0, 1], 13); + AssertHelpers.AlmostEqualRelative(matrix[1, 1], result[1, 1], 13); + AssertHelpers.AlmostEqualRelative(matrix[2, 1], result[2, 1], 13); } ///