Fix rotation_test IsClose() and related tests Change-Id: I0ff91e2931615babf1dcc9483fac7f4a2fb13726
diff --git a/internal/ceres/rotation_test.cc b/internal/ceres/rotation_test.cc index 6d014aa..4167d71 100644 --- a/internal/ceres/rotation_test.cc +++ b/internal/ceres/rotation_test.cc
@@ -711,11 +711,12 @@ template <int N> bool IsClose(const Jet<double, N> &x, const Jet<double, N> &y) { - if (IsClose(x.a, y.a)) { - for (int i = 0; i < N; i++) { - if (!IsClose(x.v[i], y.v[i])) { - return false; - } + if (!IsClose(x.a, y.a)) { + return false; + } + for (int i = 0; i < N; i++) { + if (!IsClose(x.v[i], y.v[i])) { + return false; } } return true; @@ -814,9 +815,9 @@ J4 quaternion[4] = { J4(c, 0), J4(s, 1), J4(0, 2), J4(0, 3) }; J4 axis_angle[3]; J4 expected[3] = { - MakeJ4(s, -2*theta, 2*theta*c, 0, 0), - MakeJ4(0, 0, 0, 2*theta/s, 0), - MakeJ4(0, 0, 0, 0, 2*theta/s), + MakeJ4(2*theta, -2*s, 2*c, 0, 0), + MakeJ4(0, 0, 0, 2*theta/s, 0), + MakeJ4(0, 0, 0, 0, 2*theta/s), }; QuaternionToAngleAxis(quaternion, axis_angle); ExpectJetArraysClose<3, 4>(axis_angle, expected); @@ -837,9 +838,9 @@ // a finite expansion is used here, which will // be exact up to machine precision for the test values used. J4 expected[3] = { - MakeJ4(theta, -2*theta, 2.0, 0, 0), - MakeJ4(0, 0, 0, 2.0, 0), - MakeJ4(0, 0, 0, 0, 2.0), + MakeJ4(2*theta, -2*s, 2.0, 0, 0), + MakeJ4(0, 0, 0, 2.0, 0), + MakeJ4(0, 0, 0, 0, 2.0), }; QuaternionToAngleAxis(quaternion, axis_angle); ExpectJetArraysClose<3, 4>(axis_angle, expected);