Grafalgo
Library of useful data structures and algorithms
/Users/jst/src/grafalgo/cpp/dataStructures/hash/unit/testIdMap.cpp
00001 
00009 #include "IdMap.h"
00010 #include "Utest.h"
00011 
00012 using namespace grafalgo;
00013 
00014 void basicTests() {
00015         int n1 = 10; IdMap map1(n1); string s;
00016 
00017         Utest::assertEqual(map1.firstId(), 0, "initial map not empty");
00018         cout << "writing empty idMap: " << map1 << endl;
00019 
00020         map1.addPair(1234);
00021         Utest::assertEqual(map1.getId(1234),1,"wrong id for first item");
00022         cout << "writing singleton idMap: " << map1 << endl;
00023 
00024         Utest::assertEqual(map1.toString(s), "{1234:1}",
00025                 "mismatch on adding first item");
00026 
00027         map1.addPair(2345); map1.addPair(3456);
00028         Utest::assertEqual(map1.getId(2345),2,"wrong id for second item");
00029         Utest::assertEqual(map1.getId(3456),3,"wrong id for third item");
00030         Utest::assertEqual(map1.toString(s), "{1234:1 2345:2 3456:3}",
00031                 "mismatch after adding third item");
00032         cout << "writing 3 idMap: " << map1 << endl;
00033 
00034         map1.dropPair(2345);
00035         Utest::assertEqual(map1.toString(s), "{1234:1 3456:3}",
00036                 "mismatch after releasing second id");
00037 
00038         map1.addPair(4567);
00039         Utest::assertEqual(map1.toString(s), "{1234:1 3456:3 4567:4}",
00040                 "mismatch on adding after releasing id");
00041 
00042         map1.clear();
00043         Utest::assertEqual(map1.toString(s), "{}",
00044                            "mismatch after clearing map");
00045 }
00046 
00050 int main() {
00051         cout << "running basic tests\n";
00052         basicTests();
00053         cout << "basic tests passed\n";
00054 
00055         // add more systematic tests for each individual method
00056 }
 All Classes Files Functions Variables Typedefs Friends