Files Classes Functions Hierarchy
00001 #include <mazematrixD2.h> 00002 #include <mazematrixD2createmaze.h> 00003 #include <mazematrixmapD2.h> 00004 #include <mazematrixD2test.h> 00005 00006 string mazematrixD2test::doc[] = 00007 { 00008 "", 00009 "Link a simple maze and print it out.", 00010 "From a simple maze, generate a relative map - local coord system.", 00011 "Create a small maze, then use mazematrixmapD2 to map it and test coordinates.", 00012 "Testing mazematrixD2 serialization." 00013 }; 00014 00015 00016 void mazematrixD2test::test01() 00017 { 00018 mazematrixD2<uint> mz(3,3); 00019 00020 uint k; 00021 k = mz.add(); 00022 uint k2; 00023 k2 = mz.add(); 00024 mz.link(k,1,1,3); 00025 00026 mz.link(1,1,2); 00027 mz.link(2,1,3); 00028 mz.link(3,2,6); 00029 mz.link(6,3,5); 00030 mz.link(5,3,4); 00031 mz.link(4,2,7); 00032 mz.link(7,1,8); 00033 mz.link(8,1,9); 00034 mz.link(9,1,k2); 00035 00036 for (uint i=1; i<mz.vi.size(); ++i) 00037 { 00038 cout << (string)mz.vi[i] << endl; 00039 } 00040 00041 assert(mz.valid()); 00042 } 00043 00044 00045 void mazematrixD2test::test02() 00046 { 00047 mazematrixD2<uint> mz(3,3); 00048 00049 uint k; 00050 k = mz.add(); 00051 uint k2; 00052 k2 = mz.add(); 00053 mz.link(k,1,1,3); 00054 00055 mz.link(1,1,2); 00056 mz.link(2,1,3); 00057 mz.link(3,2,6); 00058 mz.link(6,3,5); 00059 mz.link(5,3,4); 00060 mz.link(4,2,7); 00061 mz.link(7,1,8); 00062 mz.link(8,1,9); 00063 mz.link(9,1,k2); 00064 00065 for (uint i=1; i<mz.vi.size(); ++i) 00066 { 00067 cout << (string)mz.vi[i] << endl; 00068 } 00069 00070 assert(mz.valid()); 00071 00072 mazematrixmapD2<uint,int> mmap(mz,1,1); 00073 00074 mmap.relativeto(1); 00075 mmap.eval(); 00076 00077 for (mmap.reset(); !mmap; ++mmap) 00078 { 00079 cout << "id: " << mmap.currentIndex() << " pos: " << mmap.currentPosition() << endl; 00080 } 00081 00082 } 00083 00084 00085 int mazematrixD2test::unittest01() 00086 { 00087 mazematrixD2<uint> mz(3,3); 00088 00089 uint k; 00090 k = mz.add(); 00091 uint k2; 00092 k2 = mz.add(); 00093 mz.link(k,1,1,3); 00094 00095 mz.link(1,1,2); 00096 mz.link(2,1,3); 00097 mz.link(3,2,6); 00098 mz.link(6,3,5); 00099 mz.link(5,3,4); 00100 mz.link(4,2,7); 00101 mz.link(7,1,8); 00102 mz.link(8,1,9); 00103 mz.link(9,1,k2); 00104 00105 for (uint i=1; i<mz.vi.size(); ++i) 00106 { 00107 cout << (string)mz.vi[i] << endl; 00108 } 00109 00110 assert(mz.valid()); 00111 00112 mazematrixmapD2<uint,int> mmap(mz,1,1); 00113 00114 mmap.relativeto(1); 00115 mmap.eval(); 00116 00117 for (mmap.reset(); !mmap; ++mmap) 00118 { 00119 cout << "id: " << mmap.currentIndex() << " pos: " << mmap.currentPosition() << endl; 00120 } 00121 00122 bool res=true; 00123 res &= (mmap.ipt[1]==point2<int>(0,0)); 00124 00125 string pos[] = 00126 { 00127 "0 0", "0 0", "1 0", "2 0", 00128 "0 -1", "1 -1", "2 -1", "0 -2", 00129 "1 -2", "2 -2", "-1 0", "3 -2" 00130 }; 00131 uint possize = sizeof(pos)/sizeof(string); 00132 cout << SHOW(possize) << endl; 00133 00134 point2<int> pi; 00135 for (uint i=1; i<possize; ++i) 00136 { 00137 pi.serializeInverse(pos[i]); 00138 res &= (mmap.ipt[i]==pi); 00139 cout << SHOW(i) << " " << SHOW(res) << endl; 00140 } 00141 00142 if (res==false) 00143 return 1; 00144 00145 return 0; 00146 } 00147 00148 int mazematrixD2test::unittest02() 00149 { 00150 mazematrixD2<uint> mz(4,4); 00151 mazematrixD2createmaze<uint> mc(mz); 00152 mc.buildpropermaze(); 00153 00154 string s1=(string)mz; 00155 cout << s1 << endl; 00156 00157 mazematrixD2<uint> mz2; 00158 mz2.serializeInverse(s1); 00159 string s2=(string)mz2; 00160 cout << s2 << endl; 00161 00162 if (s1==s2) 00163 return 0; 00164 00165 return 1; 00166 } 00167 00168 00169 00170
1.5.8