@@ -225,6 +225,54 @@ TEST_F(ScriptCommandInterfaceTest, test_set_payload)
225225 EXPECT_EQ (message_sum, expected_message_sum);
226226}
227227
228+ TEST_F (ScriptCommandInterfaceTest, test_set_target_payload)
229+ {
230+ // Wait for the client to connect to the server
231+ waitForClientConnection ();
232+
233+ double mass = 1.0 ;
234+ vector3d_t cog = { 0.2 , 0.3 , 0.1 };
235+ vector6d_t inertia = { 0.4 , 0.7 , 0.8 , 0.2 , 0.5 , 0.6 };
236+ double transition_time = 0.002 ;
237+ script_command_interface_->setTargetPayload (mass, &cog, &inertia, transition_time);
238+ int32_t command;
239+ std::vector<int32_t > message;
240+ client_->readMessage (command, message);
241+
242+ // 12 is set target payload
243+ int32_t expected_command = 12 ;
244+ EXPECT_EQ (command, expected_command);
245+
246+ // Test mass
247+ double received_mass = (double )message[0 ] / script_command_interface_->MULT_JOINTSTATE ;
248+ EXPECT_EQ (received_mass, mass);
249+
250+ // Test cog
251+ vector3d_t received_cog;
252+ for (unsigned int i = 0 ; i < cog.size (); ++i)
253+ {
254+ received_cog[i] = (double )message[i + 1 ] / script_command_interface_->MULT_JOINTSTATE ;
255+ EXPECT_EQ (received_cog[i], cog[i]);
256+ }
257+
258+ // Test inertia
259+ vector6d_t received_inertia;
260+ for (unsigned int i = 0 ; i < inertia.size (); ++i)
261+ {
262+ received_inertia[i] = (double )message[i + 4 ] / script_command_interface_->MULT_JOINTSTATE ;
263+ EXPECT_EQ (received_inertia[i], inertia[i]);
264+ }
265+
266+ // Test transition time
267+ double received_transition_time = (double )message[10 ] / script_command_interface_->MULT_JOINTSTATE ;
268+ EXPECT_EQ (received_transition_time, transition_time);
269+
270+ // The rest of the message should be zero
271+ int32_t message_sum = std::accumulate (std::begin (message) + 11 , std::end (message), 0 );
272+ int32_t expected_message_sum = 0 ;
273+ EXPECT_EQ (message_sum, expected_message_sum);
274+ }
275+
228276TEST_F (ScriptCommandInterfaceTest, test_set_tool_voltage)
229277{
230278 // Wait for the client to connect to the server
0 commit comments