HashedStringTests.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. module Tests;
  2. import Core.HashMap;
  3. import Core.HashedString;
  4. import Core.Test;
  5. template class Core::HashedString<32>;
  6. using HString = Core::HashedString<32>;
  7. static void testComparison() {
  8. HString a("test");
  9. Core::testString("test", static_cast<const char*>(a));
  10. HString b("testA");
  11. HString c("");
  12. HString d("Btest");
  13. Core::testTrue(a == a);
  14. Core::testTrue(b == b);
  15. Core::testTrue(c == c);
  16. Core::testTrue(d == d);
  17. Core::testTrue(a != b);
  18. Core::testTrue(a != c);
  19. Core::testTrue(a != d);
  20. Core::testTrue(b != a);
  21. Core::testTrue(b != c);
  22. Core::testTrue(b != d);
  23. Core::testTrue(c != a);
  24. Core::testTrue(c != b);
  25. Core::testTrue(c != d);
  26. Core::testTrue(d != a);
  27. Core::testTrue(d != b);
  28. Core::testTrue(d != c);
  29. }
  30. static void testLength() {
  31. HString s("test");
  32. Core::test(4, s.getLength());
  33. Core::test(31, s.getCapacity());
  34. }
  35. static void testHashCode() {
  36. HString a;
  37. HString b("wusi");
  38. Core::test(a.hashCode(), 0lu);
  39. Core::testTrue(b.hashCode() != 0u);
  40. }
  41. static void testAsHashMapKey() {
  42. Core::HashMap<HString, int> map;
  43. map.add("wusi", 3).add("hiThere", 7).add("baum123", 5);
  44. int* a = map.search("wusi");
  45. int* b = map.search("hiThere");
  46. int* c = map.search("baum123");
  47. Core::testNull(map.search("423hifd"));
  48. if(Core::testNotNull(a) && Core::testNotNull(b) && Core::testNotNull(c)) {
  49. Core::test(3, *a);
  50. Core::test(7, *b);
  51. Core::test(5, *c);
  52. }
  53. }
  54. void testHashedString() {
  55. testComparison();
  56. testLength();
  57. testHashCode();
  58. testAsHashMapKey();
  59. }