Add unit tests for bug #981: valid and invalid usage of ternary operator

This commit is contained in:
Gael Guennebaud
2015-09-09 11:38:25 +02:00
parent 84e0c27b61
commit 680d318352
4 changed files with 43 additions and 0 deletions

View File

@@ -126,6 +126,20 @@ template<typename MatrixType> void basicStuff(const MatrixType& m)
for(typename MatrixType::Index i=0;i<rows;++i)
sm2.col(i).noalias() -= sm1.row(i);
VERIFY_IS_APPROX(sm2,-sm1.transpose());
// check ternary usage
{
bool b = internal::random<int>(0,10)>5;
m3 = b ? m1 : m2;
if(b) VERIFY_IS_APPROX(m3,m1);
else VERIFY_IS_APPROX(m3,m2);
m3 = b ? -m1 : m2;
if(b) VERIFY_IS_APPROX(m3,-m1);
else VERIFY_IS_APPROX(m3,m2);
m3 = b ? m1 : -m2;
if(b) VERIFY_IS_APPROX(m3,m1);
else VERIFY_IS_APPROX(m3,-m2);
}
}
template<typename MatrixType> void basicStuffComplex(const MatrixType& m)