Grafalgo
Library of useful data structures and algorithms
|
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 }