aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/real_qz.cpp
diff options
context:
space:
mode:
authorGravatar Christoph Hertzberg <chtz@informatik.uni-bremen.de>2015-03-30 23:56:20 +0200
committerGravatar Christoph Hertzberg <chtz@informatik.uni-bremen.de>2015-03-30 23:56:20 +0200
commit1efae98feed340e8b33dc40cab36aeb15836a792 (patch)
tree2cb1abe369d6913ca1fa3d8c39365d97b2c2632f /test/real_qz.cpp
parent58af8bf90c1e4b225f61672582f0d519b4963f30 (diff)
bug #985: RealQZ failed when either matrix had zero rows or columns (report and patch by Ben Goodrich)
Also added a regression test
Diffstat (limited to 'test/real_qz.cpp')
-rw-r--r--test/real_qz.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/real_qz.cpp b/test/real_qz.cpp
index 7d743a734..555dcbcb4 100644
--- a/test/real_qz.cpp
+++ b/test/real_qz.cpp
@@ -25,6 +25,22 @@ template<typename MatrixType> void real_qz(const MatrixType& m)
MatrixType A = MatrixType::Random(dim,dim),
B = MatrixType::Random(dim,dim);
+
+ // Regression test for bug 985: Randomly set rows or columns to zero
+ Index k=internal::random<int>(0, dim-1);
+ switch(internal::random<int>(0,10)) {
+ case 0:
+ A.row(k).setZero(); break;
+ case 1:
+ A.col(k).setZero(); break;
+ case 2:
+ B.row(k).setZero(); break;
+ case 3:
+ B.col(k).setZero(); break;
+ default:
+ break;
+ }
+
RealQZ<MatrixType> qz(A,B);
VERIFY_IS_EQUAL(qz.info(), Success);