ArrayTests.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "../Tests.hpp"
  2. #include "core/Array.hpp"
  3. #include "core/Test.hpp"
  4. template struct Core::Array<size_t, 3>;
  5. using TestArray = Core::Array<size_t, 3>;
  6. static void testToString1() {
  7. TestArray a;
  8. a[0] = 1;
  9. a[1] = 243;
  10. a[2] = 423;
  11. TEST_STRING("[1, 243, 423]", a);
  12. Core::Array<int, 3> b = {{1, 2, 3}};
  13. TEST_STRING("[1, 2, 3]", b);
  14. }
  15. static void testToString2() {
  16. Core::Array<int, 1> a;
  17. a[0] = 1;
  18. TEST_STRING("[1]", a);
  19. }
  20. static void testReadConst() {
  21. TestArray a;
  22. for(size_t i = 0; i < a.getLength(); i++) {
  23. a[i] = i;
  24. }
  25. const TestArray& c = a;
  26. for(size_t i = 0; i < c.getLength(); i++) {
  27. TEST(i, c[i]);
  28. }
  29. }
  30. static void testRangeFor() {
  31. TestArray a;
  32. for(size_t i = 0; i < a.getLength(); i++) {
  33. a[i] = i;
  34. }
  35. for(size_t& i : a) {
  36. i++;
  37. }
  38. for(size_t i = 0; i < a.getLength(); i++) {
  39. TEST(i + 1, a[i]);
  40. }
  41. }
  42. void testArray() {
  43. testToString1();
  44. testToString2();
  45. testReadConst();
  46. testRangeFor();
  47. }