testhash.cxx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "kwsysPrivate.h"
  2. #include KWSYS_HEADER(hash_map.hxx)
  3. #include KWSYS_HEADER(hash_set.hxx)
  4. #include KWSYS_HEADER(ios/iostream)
  5. #if defined(_MSC_VER)
  6. # pragma warning (disable:4786)
  7. #endif
  8. template class kwsys::hash_map<const char*, int>;
  9. template class kwsys::hash_set<int>;
  10. bool test_hash_map()
  11. {
  12. typedef kwsys::hash_map<const char*, int> mtype;
  13. mtype m;
  14. const char* keys[] = {"hello", "world"};
  15. m[keys[0]] = 1;
  16. m.insert(mtype::value_type(keys[1], 2));
  17. int sum = 0;
  18. for(mtype::iterator mi = m.begin(); mi != m.end(); ++mi)
  19. {
  20. kwsys_ios::cout << "Found entry [" << mi->first << "," << mi->second << "]"
  21. << kwsys_ios::endl;
  22. sum += mi->second;
  23. }
  24. return sum == 3;
  25. }
  26. bool test_hash_set()
  27. {
  28. typedef kwsys::hash_set<int> stype;
  29. stype s;
  30. s.insert(1);
  31. s.insert(2);
  32. int sum = 0;
  33. for(stype::iterator si = s.begin(); si != s.end(); ++si)
  34. {
  35. kwsys_ios::cout << "Found entry [" << *si << "]" << kwsys_ios::endl;
  36. sum += *si;
  37. }
  38. return sum == 3;
  39. }
  40. int main()
  41. {
  42. bool result = true;
  43. result = test_hash_map() && result;
  44. result = test_hash_set() && result;
  45. return result? 0:1;
  46. }