Grafalgo
Library of useful data structures and algorithms
/Users/jst/src/grafalgo/cpp/dataStructures/searchTrees/unit/testSaBstSet.cpp
00001 #include "stdinc.h"
00002 #include "SaBstSet.h"
00003 #include "Util.h"
00004 #include "Utest.h"
00005 
00006 using namespace grafalgo;
00007 using namespace std;
00008 
00009 void basicTests() {
00010         int n = 13;
00011         SaBstSet st(n);
00012         int *perm = new int[n+1];
00013 
00014         Util::genPerm(n,perm);
00015         for (int i = 1; i <= n; i++) {
00016                 st.setkey(perm[i],i);
00017         }
00018         string s;
00019         cout << st.toString(s);
00020         bst r1 = perm[1];
00021         cout << "inserting in key order\n";
00022         for (int i = 2; i <= n; i++) {
00023                 st.insert(perm[i],r1);
00024                 cout << st.toString(s) << endl;
00025         }
00026         cout << "removing in key order\n";
00027         for (int i = 1; i < n; i++) {
00028                 st.remove(perm[i],r1);
00029                 cout << st.toString(s) << endl;
00030         }
00031         cout << "inserting in random order\n";
00032         r1 = perm[n/2];
00033         int j = 0;
00034         for (int i = 1; i <= n; i++) {
00035                 j = (j+5) % n;
00036                 if (j+1 == n/2) continue;
00037                 st.insert(perm[j+1],r1);
00038                 cout << st.toString(s) << endl;
00039         }
00040 
00041         cout << "removing in node order\n";
00042         for (int i = 1; i < n; i++) {
00043                 st.remove(i,r1);
00044                 cout << st.toString(s) << endl;
00045         }
00046         
00047 /*
00048         Utest::assertEqual(st.toString(s), "(a*)\n(b*)\n(c*)\n(d*)\n(e*)\n"
00049                                              "(f*) (g*) (h*) (i*)\n(j*)"
00050                                              "(k*) (l*) (m*)",
00051                                              "initial trees not correct");
00052 */
00053 }
00054 
00055 int main() {
00056         basicTests();
00057 }
 All Classes Files Functions Variables Typedefs Friends