BufferTests.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "../Tests.hpp"
  2. #include "core/Buffer.hpp"
  3. #include "core/Test.hpp"
  4. static constexpr size_t SIZE_TYPES =
  5. sizeof(int) + sizeof(long) + sizeof(float) + sizeof(double);
  6. static void testAdd(bool light) {
  7. Core::Buffer buffer;
  8. size_t limit = light ? 1000 : 100'000;
  9. for(size_t i = 0; i < limit; i++) {
  10. buffer.add(5);
  11. buffer.add(5L);
  12. buffer.add(5.0f);
  13. buffer.add(5.0);
  14. }
  15. TEST(SIZE_TYPES * limit, buffer.getLength());
  16. buffer.clear();
  17. TEST(0, buffer.getLength());
  18. buffer.add(20l);
  19. TEST(sizeof(long), buffer.getLength());
  20. }
  21. static void testCopy() {
  22. Core::Buffer buffer;
  23. for(int i = 0; i < 10; i++) {
  24. buffer.add(5);
  25. buffer.add(5L);
  26. buffer.add(5.0f);
  27. buffer.add(5.0);
  28. }
  29. Core::Buffer buffer2 = buffer;
  30. Core::Buffer buffer3;
  31. buffer3 = buffer;
  32. if(TEST(SIZE_TYPES * 10, buffer.getLength()) &&
  33. TEST(SIZE_TYPES * 10, buffer2.getLength()) &&
  34. TEST(SIZE_TYPES * 10, buffer3.getLength())) {
  35. TEST_TRUE(
  36. memcmp(buffer.getData(), buffer2.getData(), SIZE_TYPES * 10) == 0);
  37. TEST_TRUE(
  38. memcmp(buffer.getData(), buffer3.getData(), SIZE_TYPES * 10) == 0);
  39. }
  40. }
  41. static void testMoveConstruct() {
  42. Core::Buffer buffer;
  43. for(int i = 0; i < 10; i++) {
  44. buffer.add(5);
  45. buffer.add(5L);
  46. buffer.add(5.0f);
  47. buffer.add(5.0);
  48. }
  49. Core::Buffer buffer2(Core::move(buffer));
  50. TEST(0, buffer.getLength());
  51. TEST(SIZE_TYPES * 10, buffer2.getLength());
  52. }
  53. static void testMove() {
  54. Core::Buffer buffer;
  55. for(int i = 0; i < 10; i++) {
  56. buffer.add(5);
  57. buffer.add(5L);
  58. buffer.add(5.0f);
  59. buffer.add(5.0);
  60. }
  61. Core::Buffer buffer2;
  62. buffer2 = Core::move(buffer);
  63. TEST(0, buffer.getLength());
  64. TEST(SIZE_TYPES * 10, buffer2.getLength());
  65. }
  66. void testBuffer(bool light) {
  67. testAdd(light);
  68. testCopy();
  69. testMoveConstruct();
  70. testMove();
  71. }