Grafalgo
Library of useful data structures and algorithms
/Users/jst/src/grafalgo/cpp/dataStructures/hash/unit/testHashSet.cpp
00001 #include "HashSet.h"
00002 #include "Util.h"
00003 #include "Utest.h"
00004 
00005 using namespace grafalgo;
00006 
00007 void basicTests() {
00008         int n = 10; string s1;
00009         HashSet set(n);
00010         int *perm = new int[2*n+1];
00011         Util::genPerm(2*n,perm);
00012 
00013         // adding n keys
00014         for (int i = 1; i <= n; i++) {
00015                 set.insert(perm[i]);
00016                 Utest::assertTrue(set.member(perm[i]),
00017                         "inserted key not a member of set");
00018         }
00019         cout << "set of 10: " << set << endl;
00020         Utest::assertTrue(set.size() == n,
00021                 "set size does not match number of inserted keys");
00022         // checking that sample of non-keys are not in set
00023         for (int i = n+1; i <= 2*n; i++) {
00024                 Utest::assertTrue(!set.member(perm[i]),
00025                         "key that was not inserted is a member of set");
00026         }
00027 
00028         // removing keys
00029         for (int i = 1; i <= n; i++) {
00030                 set.remove(perm[i]);
00031                 Utest::assertTrue(!set.member(perm[i]),
00032                         "removed key is still member of set");
00033         }
00034         cout << "passed basic tests\n";
00035 }
00036 
00037 int main() {
00038         basicTests();
00039 }
 All Classes Files Functions Variables Typedefs Friends