@@ -382,6 +382,45 @@ TEST_F(ScriptCommandInterfaceTest, test_tool_contact_callback)
382382 EXPECT_EQ (toUnderlying (received_result_), toUnderlying (send_result));
383383}
384384
385+ TEST_F (ScriptCommandInterfaceTest, test_set_friction_compensation)
386+ {
387+ // Wait for the client to connect to the server
388+ waitForClientConnection ();
389+
390+ script_command_interface_->setFrictionCompensation (true );
391+
392+ int32_t command;
393+ std::vector<int32_t > message;
394+ client_->readMessage (command, message);
395+
396+ // 7 is set friction compensation
397+ int32_t expected_command = 7 ;
398+ EXPECT_EQ (command, expected_command);
399+
400+ int32_t expected_friction_compensation = 1 ;
401+ EXPECT_EQ (message[0 ], expected_friction_compensation);
402+
403+ // The rest of the message should be zero
404+ int32_t message_sum = std::accumulate (std::begin (message) + 1 , std::end (message), 0 );
405+ int32_t expected_message_sum = 0 ;
406+ EXPECT_EQ (message_sum, expected_message_sum);
407+
408+ script_command_interface_->setFrictionCompensation (false );
409+
410+ message.clear ();
411+ client_->readMessage (command, message);
412+
413+ EXPECT_EQ (command, expected_command);
414+
415+ expected_friction_compensation = 0 ;
416+ EXPECT_EQ (message[0 ], expected_friction_compensation);
417+
418+ // The rest of the message should be zero
419+ message_sum = std::accumulate (std::begin (message) + 1 , std::end (message), 0 );
420+ expected_message_sum = 0 ;
421+ EXPECT_EQ (message_sum, expected_message_sum);
422+ }
423+
385424int main (int argc, char * argv[])
386425{
387426 ::testing::InitGoogleTest (&argc, argv);
0 commit comments