CircularBuffer_test.cc 772 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "catch.hpp"
  2. #include "CircularBuffer.hh"
  3. using namespace openmsx;
  4. TEST_CASE("CircularBuffer")
  5. {
  6. CircularBuffer<int, 2> buf;
  7. CHECK(buf.isEmpty());
  8. CHECK(!buf.isFull());
  9. CHECK(buf.size() == 0);
  10. buf.addBack(15);
  11. CHECK(!buf.isEmpty());
  12. CHECK(!buf.isFull());
  13. CHECK(buf.size() == 1);
  14. CHECK(buf[0] == 15);
  15. buf[0] = 25;
  16. CHECK(buf[0] == 25);
  17. buf.addFront(17);
  18. CHECK(!buf.isEmpty());
  19. CHECK(buf.isFull());
  20. CHECK(buf.size() == 2);
  21. CHECK(buf[0] == 17);
  22. CHECK(buf[1] == 25);
  23. buf[1] = 35;
  24. CHECK(buf[0] == 17);
  25. CHECK(buf[1] == 35);
  26. buf[0] = 27;
  27. CHECK(buf[0] == 27);
  28. CHECK(buf[1] == 35);
  29. int a = buf.removeBack();
  30. CHECK(a == 35);
  31. CHECK(buf.size() == 1);
  32. CHECK(buf[0] == 27);
  33. int b = buf.removeFront();
  34. CHECK(b == 27);
  35. CHECK(buf.isEmpty());
  36. }