toon-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Toon-members] TooN/test SXX_test.cc


From: Gerhard Reitmayr
Subject: [Toon-members] TooN/test SXX_test.cc
Date: Wed, 01 Apr 2009 13:21:27 +0000

CVSROOT:        /cvsroot/toon
Module name:    TooN
Changes by:     Gerhard Reitmayr <gerhard>      09/04/01 13:21:27

Modified files:
        test           : SXX_test.cc 

Log message:
        so3.h

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/TooN/test/SXX_test.cc?cvsroot=toon&r1=1.4&r2=1.5

Patches:
Index: SXX_test.cc
===================================================================
RCS file: /cvsroot/toon/TooN/test/SXX_test.cc,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- SXX_test.cc 26 Mar 2009 19:28:31 -0000      1.4
+++ SXX_test.cc 1 Apr 2009 13:21:26 -0000       1.5
@@ -4,8 +4,11 @@
 
 #include <TooN/so2.h>
 #include <TooN/se2.h>
+#include <TooN/so3.h>
 
 void test_so2(){
+    cout << "---------------SO2 Tests---------------\n";
+    
     TooN::SO2<> r1;
     cout << "default constructor\n";
     cout << r1 << endl;
@@ -38,6 +41,7 @@
     l2[0] = TooN::makeVector(0,1,2);
     cout << "right with rectangular matrix\n";
     cout << r * l2 << endl;
+    cout << l2.T() * r << endl;
     
     TooN::Matrix<2> m;
     m[0] = TooN::makeVector(0.5, 1);
@@ -48,6 +52,8 @@
 }
 
 void test_se2(){
+    cout << "---------------SE2 Tests---------------\n";
+
     TooN::SE2<> r1;
     cout << "default constructor\n";
     cout << r1 << endl;
@@ -64,12 +70,83 @@
     cout << TooN::SE2<>::generator(0) ;
     cout << TooN::SE2<>::generator(1) ;
     cout << TooN::SE2<>::generator(2) << endl;
+
+    TooN::Vector<2> t1 = TooN::makeVector(0,1);
+    TooN::Vector<> t2(3); t2 = TooN::makeVector(1,0,1);
+    cout << "se2 * vector\n";
+    cout << r3 * t1 << endl;
+    cout << r3 * t2 << endl;
+    cout << "vector * se3\n";    
+    // cout << t1 * r3 << endl; // this is not well defined, should the output 
be a 3 vector ?
+    cout << t2 * r3 << endl;    
+
+#if 0    
+    TooN::Matrix<3> m1;
+    TooN::Matrix<> m2(3,3);
+    TooN::Matrix<3,10> m3;
+    cout << "se2 * matrix\n";
+    cout << r3 * m1 << endl;
+    cout << r3 * m2 << endl;
+    cout << r3 * m3 << endl;
+    cout << "matrix * se2\n";
+    cout << m1 * r3 << endl;
+    cout << m2 * r3 << endl;
+    cout << m3.T() * r3 << endl;
+#endif
+}
+
+void test_so3(){
+    cout << "---------------SO3 Tests---------------\n";
+    
+    TooN::SO3<> r1;
+    cout << "default constructor\n";
+    cout << r1 << endl;
+    cout << "default constructor <int>\n";
+    TooN::SO3<int> r2;
+    cout << r2 << endl;
+    TooN::SO3<> r(TooN::makeVector(0.1, 0.1, 0.1));
+    cout << "constructor with 0.1\n";
+    cout << r << endl;
+    cout << "generator 0,1,2\n";
+    cout << TooN::SO3<>::generator(0) ;
+    cout << TooN::SO3<>::generator(1) ;
+    cout << TooN::SO3<>::generator(2) << endl;
+    cout << "ln()\n";
+    cout << r.ln() << endl;
+    cout << "inverse\n";
+    cout << r.inverse() << endl;
+    cout << "times\n";
+    cout << r * r.inverse() << endl;
+    cout << (r *= r.inverse()) << endl;
+    r = TooN::SO3<>::exp(TooN::makeVector(0.1, 0.1, 0.1));
+
+    TooN::Vector<3> t = TooN::makeVector(0,1,2);
+    cout << "right and left multiply with vector " << t << "\n";
+    cout << r * t << endl;
+    cout << t * r << endl;
+    TooN::Matrix<3> l = TooN::Identity;
+    cout << "right and left multiply with matrix\n" << l << "\n";
+    cout << r * l << endl;
+    cout << l * r << endl;
+    TooN::Matrix<3,6> l2(TooN::Zero);
+    l2[0] = TooN::makeVector(0,1,2,3,4,5);
+    cout << "right with rectangular matrix\n";
+    cout << r * l2 << endl;
+    cout << l2.T() * r << endl;
+
+    TooN::Matrix<3> m;
+    m[0] = TooN::makeVector(0.5, 1,2);
+    m[1] = TooN::makeVector(1,1,0);
+    m[2] = TooN::makeVector(0,-1,0);
+    cout << "set from matrix (uses coerce)\n" << m << "\n";
+    r = m;
+    cout << r << endl;
 }
 
 int main(int, char* *){
  
     test_so2();
-    test_se2();
+    test_so3();
  
     return 0;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]