diff --git a/matrix/Matrix.hpp b/matrix/Matrix.hpp index c4e9ec9573..9b849c2fcd 100644 --- a/matrix/Matrix.hpp +++ b/matrix/Matrix.hpp @@ -478,20 +478,19 @@ bool isEqual(const Matrix &x, return equal; } -bool isEqual(float x, - float y, float eps); -bool isEqual(float x, - float y, float eps=1e-4f) { +template +bool isEqualF(Type x, + Type y, Type eps=1e-4f) { bool equal = true; - if (fabs(x - y) > eps) { + if (fabsf(x - y) > eps) { equal = false; } if (!equal) { - printf("not equal\nx:\n%g\ny:\n%g\n", x, y); + printf("not equal\nx:\n%g\ny:\n%g\n", double(x), double(y)); } return equal; } diff --git a/test/attitude.cpp b/test/attitude.cpp index c365aeda0f..60bb28f69e 100644 --- a/test/attitude.cpp +++ b/test/attitude.cpp @@ -277,7 +277,7 @@ int main() AxisAnglef aa_axis_angle_init(Vector3f(1.0f, 2.0f, 3.0f), 3.0f); TEST(isEqual(aa_axis_angle_init, Vector3f(0.80178373f, 1.60356745f, 2.40535118f))); TEST(isEqual(aa_axis_angle_init.axis(), Vector3f(0.26726124f, 0.53452248f, 0.80178373f))); - TEST(isEqual(aa_axis_angle_init.angle(), 3.0f)); + TEST(isEqualF(aa_axis_angle_init.angle(), 3.0f)); TEST(isEqual(Quatf((AxisAnglef(Vector3f(0.0f, 0.0f, 1.0f), 0.0f))), Quatf(1.0f, 0.0f, 0.0f, 0.0f))); diff --git a/test/helper.cpp b/test/helper.cpp index ccef76d1ab..e4787fc3a2 100644 --- a/test/helper.cpp +++ b/test/helper.cpp @@ -19,8 +19,8 @@ int main() TEST(!isEqual(a, b)); TEST(isEqual(a, a)); - TEST(isEqual(1.0f, 1.0f)); - TEST(!isEqual(1.0f, 2.0f)); + TEST(isEqualF(1.0f, 1.0f)); + TEST(!isEqualF(1.0f, 2.0f)); return 0; }