From d2673d89bdc91e24366ca85fb8fd54695e877b38 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Wed, 15 Jun 2011 00:30:46 -0400 Subject: add test for normalize() and normalized() --- test/adjoint.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'test/adjoint.cpp') diff --git a/test/adjoint.cpp b/test/adjoint.cpp index bc0bad4d0..98d7aabfb 100644 --- a/test/adjoint.cpp +++ b/test/adjoint.cpp @@ -65,15 +65,23 @@ template void adjoint(const MatrixType& m) // check basic properties of dot, norm, norm2 typedef typename NumTraits::Real RealScalar; - RealScalar ref = NumTraits::IsInteger ? 0 : std::max((s1 * v1 + s2 * v2).norm(),v3.norm()); + RealScalar ref = NumTraits::IsInteger ? RealScalar(0) : std::max((s1 * v1 + s2 * v2).norm(),v3.norm()); VERIFY(test_isApproxWithRef((s1 * v1 + s2 * v2).dot(v3), internal::conj(s1) * v1.dot(v3) + internal::conj(s2) * v2.dot(v3), ref)); VERIFY(test_isApproxWithRef(v3.dot(s1 * v1 + s2 * v2), s1*v3.dot(v1)+s2*v3.dot(v2), ref)); VERIFY_IS_APPROX(internal::conj(v1.dot(v2)), v2.dot(v1)); VERIFY_IS_APPROX(internal::real(v1.dot(v1)), v1.squaredNorm()); - if(!NumTraits::IsInteger) + if(!NumTraits::IsInteger) { VERIFY_IS_APPROX(v1.squaredNorm(), v1.norm() * v1.norm()); + // check normalized() and normalize() + VERIFY_IS_APPROX(v1, v1.norm() * v1.normalized()); + // normalize() returns a reference to *this + v3 = v1; + VERIFY_IS_APPROX(v1, v1.norm() * v3.normalize()); + VERIFY_IS_APPROX(v3, v1.normalized()); + VERIFY_IS_APPROX(v3.norm(), RealScalar(1)); + } VERIFY_IS_MUCH_SMALLER_THAN(internal::abs(vzero.dot(v1)), static_cast(1)); - + // check compatibility of dot and adjoint ref = NumTraits::IsInteger ? 0 : std::max(std::max(v1.norm(),v2.norm()),std::max((square * v2).norm(),(square.adjoint() * v1).norm())); -- cgit v1.2.3