BufferTests.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "../Tests.hpp"
  2. #include "core/utils/Buffer.hpp"
  3. static constexpr int SIZE_TYPES =
  4. sizeof(int) + sizeof(long) + sizeof(float) + sizeof(double);
  5. static void testAdd() {
  6. Core::Buffer buffer(10);
  7. for(int i = 0; i < 100000; i++) {
  8. CORE_TEST_ERROR(buffer.add(5));
  9. CORE_TEST_ERROR(buffer.add(5L));
  10. CORE_TEST_ERROR(buffer.add(5.0f));
  11. CORE_TEST_ERROR(buffer.add(5.0));
  12. }
  13. CORE_TEST_EQUAL(SIZE_TYPES * 100000, buffer.getLength());
  14. }
  15. static void testCopy() {
  16. Core::Buffer buffer(10);
  17. for(int i = 0; i < 10; i++) {
  18. CORE_TEST_ERROR(buffer.add(5));
  19. CORE_TEST_ERROR(buffer.add(5L));
  20. CORE_TEST_ERROR(buffer.add(5.0f));
  21. CORE_TEST_ERROR(buffer.add(5.0));
  22. }
  23. Core::Buffer buffer2;
  24. CORE_TEST_ERROR(buffer2.copyFrom(buffer));
  25. if(CORE_TEST_EQUAL(SIZE_TYPES * 10, buffer.getLength()) &&
  26. CORE_TEST_EQUAL(SIZE_TYPES * 10, buffer2.getLength())) {
  27. CORE_TEST_TRUE(Core::memoryCompare(buffer, buffer2, SIZE_TYPES * 10));
  28. }
  29. }
  30. static void testMoveConstruct() {
  31. Core::Buffer buffer(10);
  32. for(int i = 0; i < 10; i++) {
  33. CORE_TEST_ERROR(buffer.add(5));
  34. CORE_TEST_ERROR(buffer.add(5L));
  35. CORE_TEST_ERROR(buffer.add(5.0f));
  36. CORE_TEST_ERROR(buffer.add(5.0));
  37. }
  38. Core::Buffer buffer2(Core::move(buffer));
  39. CORE_TEST_EQUAL(0, buffer.getLength());
  40. CORE_TEST_EQUAL(SIZE_TYPES * 10, buffer2.getLength());
  41. }
  42. static void testMove() {
  43. Core::Buffer buffer(10);
  44. for(int i = 0; i < 10; i++) {
  45. CORE_TEST_ERROR(buffer.add(5));
  46. CORE_TEST_ERROR(buffer.add(5L));
  47. CORE_TEST_ERROR(buffer.add(5.0f));
  48. CORE_TEST_ERROR(buffer.add(5.0));
  49. }
  50. Core::Buffer buffer2(3);
  51. buffer2 = Core::move(buffer);
  52. CORE_TEST_EQUAL(0, buffer.getLength());
  53. CORE_TEST_EQUAL(SIZE_TYPES * 10, buffer2.getLength());
  54. }
  55. void Core::testBuffer() {
  56. testAdd();
  57. testCopy();
  58. testMoveConstruct();
  59. testMove();
  60. }