Fix missing namespace qualification and docs for Manifold gtest macro

Change-Id: Iae9a0d13191a777921208cb58d919f0e85b1bf92
diff --git a/include/ceres/manifold_test_utils.h b/include/ceres/manifold_test_utils.h
index 3f9fb21..dd1f931 100644
--- a/include/ceres/manifold_test_utils.h
+++ b/include/ceres/manifold_test_utils.h
@@ -42,24 +42,51 @@
 
 namespace ceres {
 
-// Matchers and macros for help with testing Manifold objects.
+// Matchers and macros to simplify testing of custom Manifold objects using the
+// gtest testing framework.
 //
 // Testing a Manifold has two parts.
 //
-// 1. Checking that Manifold::Plus is correctly defined. This requires per
-// manifold tests.
+// 1. Checking that Manifold::Plus() and Manifold::Minus() are correctly
+//    defined. This requires per manifold tests.
 //
 // 2. The other methods of the manifold have mathematical properties that make
-// it compatible with Plus, as described in:
+//    them compatible with Plus() and Minus(), as described in [1].
 //
-// "Integrating Generic Sensor Fusion Algorithms with Sound State
-// Representations through Encapsulation of Manifolds"
-// By C. Hertzberg, R. Wagner, U. Frese and L. Schroder
-// https://arxiv.org/pdf/1107.1119.pdf
+// To verify these general requirements for a custom Manifold, use the
+// EXPECT_THAT_MANIFOLD_INVARIANTS_HOLD() macro from within a gtest test. Note
+// that additional domain-specific tests may also be prudent, e.g to verify the
+// behaviour of a Quaternion Manifold about pi.
 //
-// These tests are implemented using generic matchers defined below which can
-// all be called by the macro EXPECT_THAT_MANIFOLD_INVARIANTS_HOLD(manifold, x,
-// delta, y, tolerance). See manifold_test.cc for example usage.
+// [1] "Integrating Generic Sensor Fusion Algorithms with Sound State
+//     Representations through Encapsulation of Manifolds", C. Hertzberg,
+//     R. Wagner, U. Frese and L. Schroder, https://arxiv.org/pdf/1107.1119.pdf
+
+// Verifies the general requirements for a custom Manifold are satisfied to
+// within the specified (numerical) tolerance.
+//
+// Example usage for a custom Manifold: ExampleManifold:
+//
+//    TEST(ExampleManifold, ManifoldInvariantsHold) {
+//      constexpr double kTolerance = 1.0e-9;
+//      ExampleManifold manifold;
+//      ceres::Vector x = ceres::Vector::Zero(manifold.AmbientSize());
+//      ceres::Vector y = ceres::Vector::Zero(manifold.AmbientSize());
+//      ceres::Vector delta = ceres::Vector::Zero(manifold.TangentSize());
+//      EXPECT_THAT_MANIFOLD_INVARIANTS_HOLD(manifold, x, delta, y, kTolerance);
+//    }
+#define EXPECT_THAT_MANIFOLD_INVARIANTS_HOLD(manifold, x, delta, y, tolerance) \
+  ::ceres::Vector zero_tangent = ::ceres::Vector::Zero(manifold.TangentSize()); \
+  EXPECT_THAT(manifold, ::ceres::XPlusZeroIsXAt(x, tolerance));         \
+  EXPECT_THAT(manifold, ::ceres::XMinusXIsZeroAt(x, tolerance));        \
+  EXPECT_THAT(manifold, ::ceres::MinusPlusIsIdentityAt(x, delta, tolerance)); \
+  EXPECT_THAT(manifold, ::ceres::MinusPlusIsIdentityAt(x, zero_tangent, tolerance)); \
+  EXPECT_THAT(manifold, ::ceres::PlusMinusIsIdentityAt(x, x, tolerance)); \
+  EXPECT_THAT(manifold, ::ceres::PlusMinusIsIdentityAt(x, y, tolerance)); \
+  EXPECT_THAT(manifold, ::ceres::HasCorrectPlusJacobianAt(x, tolerance)); \
+  EXPECT_THAT(manifold, ::ceres::HasCorrectMinusJacobianAt(x, tolerance)); \
+  EXPECT_THAT(manifold, ::ceres::MinusPlusJacobianIsIdentityAt(x, tolerance)); \
+  EXPECT_THAT(manifold, ::ceres::HasCorrectRightMultiplyByPlusJacobianAt(x, tolerance));
 
 // Checks that the invariant Plus(x, 0) == x holds.
 MATCHER_P2(XPlusZeroIsXAt, x, tolerance, "") {
@@ -312,17 +339,4 @@
   return true;
 }
 
-#define EXPECT_THAT_MANIFOLD_INVARIANTS_HOLD(manifold, x, delta, y, tolerance) \
-  Vector zero_tangent = Vector::Zero(manifold.TangentSize());                  \
-  EXPECT_THAT(manifold, XPlusZeroIsXAt(x, tolerance));                         \
-  EXPECT_THAT(manifold, XMinusXIsZeroAt(x, tolerance));                        \
-  EXPECT_THAT(manifold, MinusPlusIsIdentityAt(x, delta, tolerance));           \
-  EXPECT_THAT(manifold, MinusPlusIsIdentityAt(x, zero_tangent, tolerance));    \
-  EXPECT_THAT(manifold, PlusMinusIsIdentityAt(x, x, tolerance));               \
-  EXPECT_THAT(manifold, PlusMinusIsIdentityAt(x, y, tolerance));               \
-  EXPECT_THAT(manifold, HasCorrectPlusJacobianAt(x, tolerance));               \
-  EXPECT_THAT(manifold, HasCorrectMinusJacobianAt(x, tolerance));              \
-  EXPECT_THAT(manifold, MinusPlusJacobianIsIdentityAt(x, tolerance));          \
-  EXPECT_THAT(manifold, HasCorrectRightMultiplyByPlusJacobianAt(x, tolerance));
-
 }  // namespace ceres