proj home

Files   Classes   Functions   Hierarchy  

linechoppedtest.cpp

Go to the documentation of this file.
00001 
00002 #include <iostream>
00003 using namespace std;
00004 
00005 #include <linechopped.h>
00006 #include <linechoppedtest.h>
00007 #include <print.h>
00008 
00009 
00010 
00011 int linechoppedtest::unittest01()
00012 {
00013   typedef point2<double> pt2;
00014 
00015   typedef line<pt2,double> linetype;
00016 
00017   typedef linechopped< pt2, double > lchop;
00018 
00019   // Create horizontal unit line.
00020   lchop lc( 
00021     linetype( pt2(1.0,0.0), pt2(0.0,0.0) ),
00022     pt2(0.0,1.0) );
00023 
00024   cout << "Printing the t values of the line segment." << endl;
00025   cout << print(lc.chain.begin(),lc.chain.end(), "\n") << endl;
00026 
00027   cout << "Chop with vertical lines." << endl;
00028 
00029   lchop::listiter pos;
00030 
00031   assertreturnOS(
00032     lc.split(
00033       pos, 
00034       lc.chain.begin(), 
00035       linetype(pt2(0.0,1.0),pt2(0.5,0.0))) );
00036 
00037   lchop::listiter pos2 = pos;
00038   
00039   cout << print(lc.chain.begin(),lc.chain.end(), "\n") << endl;
00040   cout << endl;
00041 
00042   assertreturnOS(
00043     lc.split(
00044       pos, 
00045       lc.chain.begin(), 
00046       linetype(pt2(0.0,1.0),pt2(1.0/3.0,0.0))));
00047 
00048   cout << print(lc.chain.begin(),lc.chain.end(), "\n") << endl << endl;
00049 
00050   ++pos2;
00051 
00052   cout << SHOW(*pos2) << endl;
00053   assertreturnOS(
00054     lc.split(pos, pos2, linetype(pt2(0.0,1.0),pt2(2.0/3.0,0.0))));
00055   cout << print(lc.chain.begin(),lc.chain.end(), "\n") << endl;
00056 
00057   return 0;
00058 }
00059 
00060 
00061 int linechoppedtest::unittest02()
00062 {
00063   typedef point2<double> pt2;
00064 
00065   typedef line<pt2,double> linetype;
00066 
00067   typedef linechoppedindexed<pt2,double,uint> lchop;
00068 
00069   typedef pointindexed<pt2,uint> pti;
00070 
00071   pti t2(pt2(0.0,1.0), 5);
00072 
00073   // Create horizontal unit line.
00074   lchop lc( 
00075     linetype( pt2(1.0,0.0), pt2(0.0,0.0) ),
00076     pti(pt2(0.0,1.0), 5) );
00077 
00078   cout << "Printing the t values of the line segment." << endl;
00079   cout << print(lc.chain.begin(),lc.chain.end(), "\n") << endl;
00080 
00081 
00082   cout << "Chop with vertical lines." << endl;
00083 
00084   lchop::listiter pos;
00085 
00086   bool res;
00087   res = 
00088     lc.split(
00089       pos, 
00090       lc.chain.begin(), 
00091       linetype(pt2(0.0,1.0),pt2(0.5,0.0)));
00092 
00093   if (res)
00094     (*pos).index = 32;
00095 
00096   lchop::listiter pos2 = pos;
00097   
00098 
00099   cout << print(lc.chain.begin(),lc.chain.end(), "\n") << endl;
00100   cout << endl;
00101 
00102   res = 
00103     lc.split(
00104       pos, 
00105       lc.chain.begin(), 
00106       linetype(pt2(0.0,1.0),pt2(1.0/3.0,0.0)));
00107   if (res)
00108     (*pos).index = 37;
00109 
00110   cout << print(lc.chain.begin(),lc.chain.end(), "\n") << endl << endl;
00111 
00112   ++pos2;
00113 
00114   cout << SHOW(*pos2) << endl;
00115   res = 
00116     lc.split(pos, pos2, linetype(pt2(0.0,1.0),pt2(2.0/3.0,0.0)));
00117   if (res)
00118     (*pos).index = 197;
00119 
00120   cout << print(lc.chain.begin(),lc.chain.end(), "\n") << endl;
00121 
00122   pos=lc.chain.begin();
00123   assertreturnOS( *pos == pti(pt2(0.0,1.0/3.0),37) );
00124   ++pos;
00125   assertreturnOS( *pos == pti(pt2(1.0/3.0,0.5),32) );
00126   ++pos;
00127   assertreturnOS( *pos == pti(pt2(0.5,2.0/3.0),197) );
00128   ++pos;
00129   assertreturnOS( *pos == pti(pt2(2.0/3.0,1.0),5) );
00130 
00131   return 0;
00132 }
00133 

Generated on Fri Mar 4 00:49:28 2011 for Chelton Evans Source by  doxygen 1.5.8