From 735c5544ae7984c68377a245b39647fbcd0dc891 Mon Sep 17 00:00:00 2001 From: Daniel Agar <daniel@agar.ca> Date: Mon, 9 Apr 2018 01:47:22 -0400 Subject: [PATCH] tests add ctlmath and use float FLT_EPSILON --- platforms/posix/cmake/sitl_tests.cmake | 1 + .../mc_pos_control_tests/test_controlmath.cpp | 27 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/platforms/posix/cmake/sitl_tests.cmake b/platforms/posix/cmake/sitl_tests.cmake index 61afb98134..9743dd5a11 100644 --- a/platforms/posix/cmake/sitl_tests.cmake +++ b/platforms/posix/cmake/sitl_tests.cmake @@ -9,6 +9,7 @@ set(tests commander controllib conv + ctlmath dataman file2 float diff --git a/src/modules/mc_pos_control/mc_pos_control_tests/test_controlmath.cpp b/src/modules/mc_pos_control/mc_pos_control_tests/test_controlmath.cpp index 9c092b14d8..3094ed61dc 100644 --- a/src/modules/mc_pos_control/mc_pos_control_tests/test_controlmath.cpp +++ b/src/modules/mc_pos_control/mc_pos_control_tests/test_controlmath.cpp @@ -1,8 +1,7 @@ #include <unit_test.h> #include "../Utility/ControlMath.hpp" #include <mathlib/mathlib.h> - -static const float EPS = 0.00000001f; +#include <cfloat> class ControlMathTest : public UnitTest { @@ -29,20 +28,20 @@ bool ControlMathTest::testThrAttMapping() matrix::Vector3f thr{0.0f, 0.0f, -1.0f}; float yaw = 0.0f; vehicle_attitude_setpoint_s att = ControlMath::thrustToAttitude(thr, yaw); - ut_compare("", att.roll_body, EPS); - ut_assert_true(att.pitch_body < EPS); - ut_assert_true(att.yaw_body < EPS); - ut_assert_true(att.thrust - 1.0f < EPS); + ut_assert_true(att.roll_body < FLT_EPSILON); + ut_assert_true(att.pitch_body < FLT_EPSILON); + ut_assert_true(att.yaw_body < FLT_EPSILON); + ut_assert_true(att.thrust - 1.0f < FLT_EPSILON); /* expected: same as before but with 90 yaw * reason: only yaw changed */ yaw = M_PI_2_F; att = ControlMath::thrustToAttitude(thr, yaw); - ut_assert_true(att.roll_body < EPS); - ut_assert_true(att.pitch_body < EPS); - ut_assert_true(att.yaw_body - M_PI_2_F < EPS); - ut_assert_true(att.thrust - 1.0f < EPS); + ut_assert_true(att.roll_body < FLT_EPSILON); + ut_assert_true(att.pitch_body < FLT_EPSILON); + ut_assert_true(att.yaw_body - M_PI_2_F < FLT_EPSILON); + ut_assert_true(att.thrust - 1.0f < FLT_EPSILON); /* expected: same as before but roll 180 * reason: thrust points straight down and order Euler @@ -50,10 +49,10 @@ bool ControlMathTest::testThrAttMapping() */ thr = matrix::Vector3f(0.0f, 0.0f, 1.0f); att = ControlMath::thrustToAttitude(thr, yaw); - ut_assert_true(fabsf(att.roll_body) - M_PI_F < EPS); - ut_assert_true(fabsf(att.pitch_body) < EPS); - ut_assert_true(att.yaw_body - M_PI_2_F < EPS); - ut_assert_true(att.thrust - 1.0f < EPS); + ut_assert_true(fabsf(att.roll_body) - M_PI_F < FLT_EPSILON); + ut_assert_true(fabsf(att.pitch_body) < FLT_EPSILON); + ut_assert_true(att.yaw_body - M_PI_2_F < FLT_EPSILON); + ut_assert_true(att.thrust - 1.0f < FLT_EPSILON); /* TODO: find a good way to test it */ -- GitLab