JointTorqueLimiterTest.cpp
Go to the documentation of this file.
00001 #include <gtest/gtest.h>
00002 #include "robodyn_controllers/JointTorqueLimiter.h"
00003 #include <ros/package.h>
00004 #include <sensor_msgs/JointState.h>
00005 
00006 class JointTorqueLimiterTest : public ::testing::Test
00007 {
00008 protected:
00009     virtual void SetUp()
00010     {
00011         std::string packagePath = ros::package::getPath("robodyn_controllers");
00012         std::string urdfFile    = packagePath + "/test/urdf/SimpleTestRobot.xml";
00013         jtl                     = new JointTorqueLimiter(urdfFile);
00014         ros::Time::init();
00015     }
00016 
00017     virtual void TearDown()
00018     {
00019     }
00020 
00021     JointTorqueLimiter* jtl;
00022 };
00023 
00024 TEST_F(JointTorqueLimiterTest, InitializeMapsTest)
00025 {
00026 
00027     // Initialize maps with test tree
00028     jtl->initializeMaps();
00029 
00030     ASSERT_FALSE(jtl->jointTorqueLimMap.empty());
00031     EXPECT_EQ (1, jtl->jointTorqueLimMap.count("joint1"));
00032     EXPECT_EQ (0, jtl->jointTorqueLimMap.count("link3"));
00033 
00034 }
00035 
00036 TEST_F(JointTorqueLimiterTest, PopulateTorqueMsgTest)
00037 {
00038     jtl->initializeMaps();
00039 
00040     sensor_msgs::JointState tLim;
00041     EXPECT_EQ(0, tLim.name.size());
00042 
00043     ASSERT_EQ(0,        jtl->populateTorqueMsg(tLim));
00044     ASSERT_EQ(3,        jtl->jointTorqueLimMap.size());
00045     ASSERT_EQ(3,        tLim.name.size());
00046     EXPECT_EQ("joint1", tLim.name[0]);
00047     EXPECT_EQ(0.0,      tLim.effort[1]);
00048 
00049     jtl->jointTorqueLimMap["joint2"] = 2;
00050     ASSERT_EQ(0, jtl->populateTorqueMsg(tLim));
00051     EXPECT_EQ(2, tLim.effort[1]);
00052 }
00053 
00054 TEST_F(JointTorqueLimiterTest, StoreJointTorques1Test)
00055 {
00056     jtl->initializeMaps();
00057 
00058     double yLim = 5.0;
00059     jtl->setYankLimit(yLim);
00060 
00061     EXPECT_EQ(0,   jtl->jointTorqueLimMap["joint1"]);
00062     ASSERT_EQ(0,   jtl->storeJointTorques(2.0));
00063     EXPECT_EQ(2.0, jtl->jointTorqueLimMap["joint1"]);
00064     EXPECT_EQ(2.0, jtl->jointTorqueLimMap["joint3"]);
00065 
00066     ASSERT_EQ(0,   jtl->storeJointTorques(10.0));
00067     EXPECT_EQ(7.0, jtl->jointTorqueLimMap["joint1"]);
00068     EXPECT_EQ(7.0, jtl->jointTorqueLimMap["joint2"]);
00069 
00070 }
00071 
00072 TEST_F(JointTorqueLimiterTest, StoreJointTorques2Test)
00073 {
00074     jtl->initializeMaps();
00075 
00076     double yLim = 5.0;
00077     jtl->setYankLimit(yLim);
00078 
00079     sensor_msgs::JointState tLim;
00080     tLim.name.push_back("joint1");
00081     tLim.name.push_back("joint2");
00082     tLim.effort.push_back(1.0);
00083     tLim.effort.push_back(2.0);
00084 
00085     ASSERT_EQ(0,   jtl->storeJointTorques(tLim));
00086     EXPECT_EQ(1.0, jtl->jointTorqueLimMap["joint1"]);
00087     EXPECT_EQ(2.0, jtl->jointTorqueLimMap["joint2"]);
00088     EXPECT_EQ(0.0, jtl->jointTorqueLimMap["joint3"]);
00089 
00090     tLim.name.push_back("joint3");
00091     tLim.effort.push_back(6.0);
00092 
00093     ASSERT_EQ(0,   jtl->storeJointTorques(tLim));
00094     EXPECT_EQ(5.0, jtl->jointTorqueLimMap["joint3"]);
00095 }
00096 
00097 int main(int argc, char** argv)
00098 {
00099     ::testing::InitGoogleTest(&argc, argv);
00100     return RUN_ALL_TESTS();
00101 }


robodyn_controllers
Author(s):
autogenerated on Sat Jun 8 2019 20:20:53