Main.cpp 944 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "data/HashMap.h"
  2. #include "data/ProbingHashMap.h"
  3. #include "test/Test.h"
  4. #include "utils/Clock.h"
  5. template<typename Map>
  6. static void test(const Map& m) {
  7. Core::Clock::Nanos nanos = 0;
  8. CORE_TEST_ERROR(Core::Clock::getNanos(nanos));
  9. int sum = 0;
  10. for(int i = 0; i < 10000; i++) {
  11. for(int k = -5000; k < 5000; k++) {
  12. const int* s = m.search(i + k);
  13. if(s != nullptr) {
  14. sum += *s;
  15. }
  16. }
  17. }
  18. Core::Clock::Nanos nanos2 = 0;
  19. CORE_TEST_ERROR(Core::Clock::getNanos(nanos2));
  20. CORE_LOG_INFO("# | # ns", sum, nanos2 - nanos);
  21. }
  22. int main() {
  23. Core::HashMap<int, int> m;
  24. Core::ProbingHashMap<int, int> m2(1 << 30);
  25. for(int i = 0; i < 10000; i++) {
  26. CORE_TEST_ERROR(m.add(i, i * i));
  27. CORE_TEST_ERROR(m2.add(i, i * i));
  28. }
  29. test(m);
  30. test(m);
  31. test(m);
  32. test(m2);
  33. test(m2);
  34. test(m2);
  35. return 0;
  36. }