Go to the documentation of this file.00001 #include "jacobiantest.hpp"
00002 #include <kinfam_io.hpp>
00003 #include <Eigen/Core>
00004
00005 CPPUNIT_TEST_SUITE_REGISTRATION(JacobianTest);
00006
00007 using namespace KDL;
00008
00009 void JacobianTest::setUp(){}
00010 void JacobianTest::tearDown(){}
00011
00012 void JacobianTest::TestChangeRefPoint(){
00013
00014 Jacobian j1(5);
00015 j1.data.setRandom();
00016
00017 Vector p;
00018 random(p);
00019
00020 Jacobian j2(5);
00021 CPPUNIT_ASSERT(changeRefPoint(j1,p,j2));
00022 CPPUNIT_ASSERT(j1!=j2);
00023 Jacobian j3(4);
00024 CPPUNIT_ASSERT(!changeRefPoint(j1,p,j3));
00025 j3.resize(5);
00026 CPPUNIT_ASSERT(changeRefPoint(j2,-p,j3));
00027 CPPUNIT_ASSERT_EQUAL(j1,j3);
00028
00029 }
00030
00031 void JacobianTest::TestChangeRefFrame(){
00032
00033 Jacobian j1(5);
00034 j1.data.setRandom();
00035
00036 Frame f;
00037 random(f);
00038
00039 Jacobian j2(5);
00040 CPPUNIT_ASSERT(changeRefFrame(j1,f,j2));
00041 CPPUNIT_ASSERT(j1!=j2);
00042 Jacobian j3(4);
00043 CPPUNIT_ASSERT(!changeRefFrame(j1,f,j3));
00044 j3.resize(5);
00045 CPPUNIT_ASSERT(changeRefFrame(j2,f.Inverse(),j3));
00046 CPPUNIT_ASSERT_EQUAL(j1,j3);
00047 }
00048
00049 void JacobianTest::TestChangeBase(){
00050
00051 Jacobian j1(5);
00052 j1.data.setRandom();
00053
00054 Rotation r;
00055 random(r);
00056
00057 Jacobian j2(5);
00058 CPPUNIT_ASSERT(changeBase(j1,r,j2));
00059 CPPUNIT_ASSERT(j1!=j2);
00060 Jacobian j3(4);
00061 CPPUNIT_ASSERT(!changeBase(j1,r,j3));
00062 j3.resize(5);
00063 CPPUNIT_ASSERT(changeBase(j2,r.Inverse(),j3));
00064 CPPUNIT_ASSERT_EQUAL(j1,j3);
00065 }
00066
00067 void JacobianTest::TestConstructor(){
00068
00069 Jacobian j1(2);
00070
00071 CPPUNIT_ASSERT_EQUAL(j1.rows(),(unsigned int)6);
00072 CPPUNIT_ASSERT_EQUAL(j1.columns(),(unsigned int)2);
00073
00074 Jacobian j2(j1);
00075
00076 CPPUNIT_ASSERT_EQUAL(j2.rows(),(unsigned int)6);
00077 CPPUNIT_ASSERT_EQUAL(j2.columns(),(unsigned int)2);
00078 Jacobian j3=j1;
00079
00080 CPPUNIT_ASSERT_EQUAL(j3.rows(),(unsigned int)6);
00081 CPPUNIT_ASSERT_EQUAL(j3.columns(),(unsigned int)2);
00082
00083
00084 j1.resize(5);
00085
00086 CPPUNIT_ASSERT_EQUAL(j1.rows(),(unsigned int)6);
00087 CPPUNIT_ASSERT_EQUAL(j1.columns(),(unsigned int)5);
00088
00089 j2=j1;
00090
00091 CPPUNIT_ASSERT_EQUAL(j2.rows(),(unsigned int)6);
00092 CPPUNIT_ASSERT_EQUAL(j2.columns(),(unsigned int)5);
00093 }
00094
00095 void JacobianTest::TestGetSetColumn(){}
00096
00097