Files Classes Functions Hierarchy
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
1.5.8