aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2015-10-26 16:00:25 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2015-10-26 16:00:25 +0100
commitf93654ae16b261e462ee00c5255072f8dd7d387b (patch)
treef9419de7849cd11f515a395e20081bcf684ac7de /test
parentaf2e25d482c4cca04701371785f3d08211ea4a2c (diff)
bug #1098: fix regression introduced when generalizing some compute() methods in changeset 7031a851d45a8526474ac1ac972ad12a48e99f1a
.
Diffstat (limited to 'test')
-rw-r--r--test/eigensolver_complex.cpp6
-rw-r--r--test/eigensolver_generalized_real.cpp8
-rw-r--r--test/eigensolver_generic.cpp6
-rw-r--r--test/eigensolver_selfadjoint.cpp6
4 files changed, 26 insertions, 0 deletions
diff --git a/test/eigensolver_complex.cpp b/test/eigensolver_complex.cpp
index 0d4e2dc87..ad982ed40 100644
--- a/test/eigensolver_complex.cpp
+++ b/test/eigensolver_complex.cpp
@@ -125,6 +125,12 @@ template<typename MatrixType> void eigensolver(const MatrixType& m)
ComplexEigenSolver<MatrixType> eiNaN(a);
VERIFY_IS_EQUAL(eiNaN.info(), NoConvergence);
}
+
+ // regression test for bug 1098
+ {
+ ComplexEigenSolver<MatrixType> eig(a.adjoint() * a);
+ eig.compute(a.adjoint() * a);
+ }
}
template<typename MatrixType> void eigensolver_verify_assert(const MatrixType& m)
diff --git a/test/eigensolver_generalized_real.cpp b/test/eigensolver_generalized_real.cpp
index 566a4bdc6..a46a2e50e 100644
--- a/test/eigensolver_generalized_real.cpp
+++ b/test/eigensolver_generalized_real.cpp
@@ -39,6 +39,14 @@ template<typename MatrixType> void generalized_eigensolver_real(const MatrixType
VectorType realEigenvalues = eig.eigenvalues().real();
std::sort(realEigenvalues.data(), realEigenvalues.data()+realEigenvalues.size());
VERIFY_IS_APPROX(realEigenvalues, symmEig.eigenvalues());
+
+ // regression test for bug 1098
+ {
+ GeneralizedSelfAdjointEigenSolver<MatrixType> eig1(a.adjoint() * a,b.adjoint() * b);
+ eig1.compute(a.adjoint() * a,b.adjoint() * b);
+ GeneralizedEigenSolver<MatrixType> eig2(a.adjoint() * a,b.adjoint() * b);
+ eig2.compute(a.adjoint() * a,b.adjoint() * b);
+ }
}
void test_eigensolver_generalized_real()
diff --git a/test/eigensolver_generic.cpp b/test/eigensolver_generic.cpp
index c5441ac4e..c42fcaeba 100644
--- a/test/eigensolver_generic.cpp
+++ b/test/eigensolver_generic.cpp
@@ -70,6 +70,12 @@ template<typename MatrixType> void eigensolver(const MatrixType& m)
EigenSolver<MatrixType> eiNaN(a);
VERIFY_IS_EQUAL(eiNaN.info(), NoConvergence);
}
+
+ // regression test for bug 1098
+ {
+ EigenSolver<MatrixType> eig(a.adjoint() * a);
+ eig.compute(a.adjoint() * a);
+ }
}
template<typename MatrixType> void eigensolver_verify_assert(const MatrixType& m)
diff --git a/test/eigensolver_selfadjoint.cpp b/test/eigensolver_selfadjoint.cpp
index 4c3de7a80..a7b4deb5d 100644
--- a/test/eigensolver_selfadjoint.cpp
+++ b/test/eigensolver_selfadjoint.cpp
@@ -156,6 +156,12 @@ template<typename MatrixType> void selfadjointeigensolver(const MatrixType& m)
SelfAdjointEigenSolver<MatrixType> eiSymmNaN(symmC);
VERIFY_IS_EQUAL(eiSymmNaN.info(), NoConvergence);
}
+
+ // regression test for bug 1098
+ {
+ SelfAdjointEigenSolver<MatrixType> eig(a.adjoint() * a);
+ eig.compute(a.adjoint() * a);
+ }
}
void bug_854()