Loosen an exact equality in local_parameterization_test The norm comparison in QuaternionParameterizationHelper is exact but that leads to numerical precision problems and test failures as reported by Nicu Stiurca. https://github.com/ceres-solver/ceres-solver/issues/198 Change-Id: I45f42f0373770408ddeee0b4c9d162e619f8d445
diff --git a/internal/ceres/local_parameterization_test.cc b/internal/ceres/local_parameterization_test.cc index 8eb8033..6e27abc 100644 --- a/internal/ceres/local_parameterization_test.cc +++ b/internal/ceres/local_parameterization_test.cc
@@ -29,6 +29,7 @@ // Author: sameeragarwal@google.com (Sameer Agarwal) #include <cmath> +#include <limits> #include "ceres/autodiff_local_parameterization.h" #include "ceres/fpclassify.h" #include "ceres/householder_vector.h" @@ -244,7 +245,9 @@ local_matrix.data()); Matrix expected_local_matrix = global_matrix * MatrixRef(jacobian, kGlobalSize, kLocalSize); - EXPECT_EQ((local_matrix - expected_local_matrix).norm(), 0.0); + EXPECT_NEAR((local_matrix - expected_local_matrix).norm(), + 0.0, + std::numeric_limits<double>::epsilon()); } template <int N>