proj home

Files   Classes   Functions   Hierarchy  

mazematrixD2test.cpp

Go to the documentation of this file.
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 

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