From e0c6bc297c6af3db75a90344795049a39b4ee9c9 Mon Sep 17 00:00:00 2001 From: Steven Murray Date: Mon, 12 Aug 2024 06:27:13 +0000 Subject: [PATCH 1/2] Fix flaky transmission_interface tests by making them deterministic. --- .../four_bar_linkage_transmission.hpp | 2 +- transmission_interface/test/random_generator_utils.hpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/transmission_interface/include/transmission_interface/four_bar_linkage_transmission.hpp b/transmission_interface/include/transmission_interface/four_bar_linkage_transmission.hpp index a8757e9c02..107133128c 100644 --- a/transmission_interface/include/transmission_interface/four_bar_linkage_transmission.hpp +++ b/transmission_interface/include/transmission_interface/four_bar_linkage_transmission.hpp @@ -289,7 +289,7 @@ inline void FourBarLinkageTransmission::actuator_to_joint() joint_eff[0].set_value(jr[0] * act_eff[0].get_value() * ar[0]); joint_eff[1].set_value( - jr[1] * (act_eff[1].get_value() * ar[1] - act_eff[0].get_value() * ar[0] * jr[0])); + jr[1] * (act_eff[1].get_value() * ar[1] - jr[0] * act_eff[0].get_value() * ar[0])); } } diff --git a/transmission_interface/test/random_generator_utils.hpp b/transmission_interface/test/random_generator_utils.hpp index fbacd1ba3b..fa5edbaafc 100644 --- a/transmission_interface/test/random_generator_utils.hpp +++ b/transmission_interface/test/random_generator_utils.hpp @@ -26,12 +26,14 @@ using std::vector; /// \brief Generator of pseudo-random double in the range [min_val, max_val]. // NOTE: Based on example code available at: // http://stackoverflow.com/questions/2860673/initializing-a-c-vector-to-random-values-fast +// Use a user specified seed instead of system time for deterministic tests struct RandomDoubleGenerator { public: - RandomDoubleGenerator(double min_val, double max_val) : min_val_(min_val), max_val_(max_val) + RandomDoubleGenerator(double min_val, double max_val, unsigned int seed=1234) + : min_val_(min_val), max_val_(max_val) { - srand(static_cast(time(nullptr))); + srand(seed); } double operator()() { From 457d2f0d560a706bbead3fb28f1a8758ad5ee198 Mon Sep 17 00:00:00 2001 From: Steven Murray Date: Mon, 12 Aug 2024 07:12:49 +0000 Subject: [PATCH 2/2] fix pre-commit --- transmission_interface/test/random_generator_utils.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transmission_interface/test/random_generator_utils.hpp b/transmission_interface/test/random_generator_utils.hpp index fa5edbaafc..01e1245e48 100644 --- a/transmission_interface/test/random_generator_utils.hpp +++ b/transmission_interface/test/random_generator_utils.hpp @@ -30,7 +30,7 @@ using std::vector; struct RandomDoubleGenerator { public: - RandomDoubleGenerator(double min_val, double max_val, unsigned int seed=1234) + RandomDoubleGenerator(double min_val, double max_val, unsigned int seed = 1234) : min_val_(min_val), max_val_(max_val) { srand(seed);