Avoid division by a zero complex
diff --git a/test/array.cpp b/test/array.cpp
index 86402ce..158bf3d 100644
--- a/test/array.cpp
+++ b/test/array.cpp
@@ -251,7 +251,7 @@
   VERIFY((round(m1) <= ceil(m1) && round(m1) >= floor(m1)).all());
   VERIFY(Eigen::isnan((m1*0.0)/0.0).all());
   VERIFY(Eigen::isinf(m4/0.0).all());
-  VERIFY((isfinite(m1) && !Eigen::isfinite(m1*0.0/0.0) && !Eigen::isfinite(m4/0.0)).all());
+  VERIFY((Eigen::isfinite(m1) && (!Eigen::isfinite(m1*0.0/0.0)) && (!Eigen::isfinite(m4/0.0))).all());
   VERIFY_IS_APPROX(inverse(inverse(m1)),m1);
   VERIFY((abs(m1) == m1 || abs(m1) == -m1).all());
   VERIFY_IS_APPROX(m3, sqrt(abs2(m1)));
@@ -358,7 +358,7 @@
   VERIFY(Eigen::isnan(m1*zero/zero).all());
 #if EIGEN_COMP_CLANG
   // clang's complex division is notoriously broken
-  if(numext::isinf(m4(0,0)/Scalar(0))) {
+  if(numext::isinf(m4(0,0)/RealScalar(0))) {
 #endif
   VERIFY(Eigen::isinf(m4/zero).all());
 #if EIGEN_COMP_CLANG
@@ -368,7 +368,7 @@
     VERIFY(isinf(m4.real()/zero.real()).all());
   }
 #endif
-  VERIFY((isfinite(m1) && !Eigen::isfinite(m1*zero/zero) && !Eigen::isfinite(m1/zero)).all());
+  VERIFY((Eigen::isfinite(m1) && (!Eigen::isfinite(m1*zero/zero)) && (!Eigen::isfinite(m1/zero))).all());
 
   VERIFY_IS_APPROX(inverse(inverse(m1)),m1);
   VERIFY_IS_APPROX(conj(m1.conjugate()), m1);