00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef WFIBER_TEST_H
00026 #define WFIBER_TEST_H
00027
00028 #include <string>
00029 #include <vector>
00030
00031 #include <cxxtest/TestSuite.h>
00032
00033 #include "../../math/linearAlgebra/WLinearAlgebra.h"
00034 #include "../WFiber.h"
00035 #include "WFiberTraits.h"
00036
00037
00038
00039
00040 class WFiberTest : public CxxTest::TestSuite
00041 {
00042 public:
00043
00044
00045
00046 void testEqualityOperator( void )
00047 {
00048 WFiber fib1;
00049 WFiber fib2;
00050 fib1.push_back( WPosition( 1.2, 3.4, 5.6 ) );
00051 fib1.push_back( WPosition( 7.8, 9.0, -1.2 ) );
00052 fib2.push_back( WPosition( 1.2, 3.4, 5.6 ) );
00053 fib2.push_back( WPosition( 7.8, 9.0, -1.2 ) );
00054 TS_ASSERT_EQUALS( fib1, fib2 );
00055 }
00056
00057
00058
00059
00060
00061 void testDLTisSymmetric( void )
00062 {
00063 WFiber q;
00064 q.push_back( WPosition( 0, 1, 0 ) );
00065 q.push_back( WPosition( 0, 0, 0 ) );
00066 WFiber r;
00067 r.push_back( WPosition( 1, 1, 0 ) );
00068 r.push_back( WPosition( 2, 2, 0 ) );
00069
00070 TS_ASSERT_EQUALS( WFiber::distDLT( 1.0, q, r ), std::sqrt( 5.0 ) / 2.0 );
00071 TS_ASSERT_EQUALS( WFiber::distDLT( 1.0, r, q ), std::sqrt( 5.0 ) / 2.0 );
00072 }
00073
00074
00075
00076
00077
00078 void testDSTisSymmetric( void )
00079 {
00080 WFiber q;
00081 q.push_back( WPosition( 0, 1, 0 ) );
00082 q.push_back( WPosition( 0, 0, 0 ) );
00083 WFiber r;
00084 r.push_back( WPosition( 1, 1, 0 ) );
00085 r.push_back( WPosition( 2, 2, 0 ) );
00086
00087 TS_ASSERT_EQUALS( WFiber::distDST( 1.0, q, r ), std::sqrt( 2.0 ) / 2.0 );
00088 TS_ASSERT_EQUALS( WFiber::distDST( 1.0, r, q ), std::sqrt( 2.0 ) / 2.0 );
00089 }
00090
00091
00092
00093
00094
00095 void testDTMeasure( void )
00096 {
00097 WFiber q;
00098 q.push_back( WPosition( 0, 1, 0 ) );
00099 q.push_back( WPosition( 0, 0, 0 ) );
00100 WFiber r;
00101 r.push_back( WPosition( 1, 1, 0 ) );
00102 r.push_back( WPosition( 2, 2, 0 ) );
00103
00104 TS_ASSERT_EQUALS( WFiber::distDST( 1.0, q, r ), std::sqrt( 2.0 ) / 2.0 );
00105 TS_ASSERT_EQUALS( WFiber::distDLT( 1.0, q, r ), std::sqrt( 5.0 ) / 2.0 );
00106 }
00107 };
00108
00109 #endif // WFIBER_TEST_H