diff --git a/test/iterator-ops.cpp b/test/iterator-ops.cpp new file mode 100644 index 0000000..3abdac0 --- /dev/null +++ b/test/iterator-ops.cpp @@ -0,0 +1,24 @@ +#include +#include +#include + +int main() { + ring_buffer buf; + + buf.push_back(1); + buf.push_back(2); + buf.push_back(3); + buf.push_back(4); + buf.push_back(5); + buf.push_back(6); + + { + auto it = buf.begin(); + ++it; + it++; + assert(*it == 5); + --it; + it--; + assert(*it == 3); + } +} diff --git a/test/swap-ring-buffer-iterator.cpp b/test/swap-ring-buffer-iterator.cpp new file mode 100644 index 0000000..8f5d971 --- /dev/null +++ b/test/swap-ring-buffer-iterator.cpp @@ -0,0 +1,33 @@ +#include +#include +#include +#include + +int main() { + ring_buffer buf1; + + buf1.push_back(1); + buf1.push_back(2); + buf1.push_back(3); + buf1.push_back(4); + buf1.push_back(5); + buf1.push_back(6); + + ring_buffer buf2; + + buf2.push_back(10); + buf2.push_back(20); + buf2.push_back(30); + buf2.push_back(40); + buf2.push_back(50); + buf2.push_back(60); + + auto it1 = buf1.begin(); + auto it2 = buf2.begin(); + std::swap(it1, it2); + + { + assert(*it1 == 30); + assert(*it2 == 3); + } +} diff --git a/test/swap-ring-buffer.cpp b/test/swap-ring-buffer.cpp new file mode 100644 index 0000000..0601bb8 --- /dev/null +++ b/test/swap-ring-buffer.cpp @@ -0,0 +1,44 @@ +#include +#include +#include +#include + +int main() { + ring_buffer buf1; + + buf1.push_back(1); + buf1.push_back(2); + buf1.push_back(3); + buf1.push_back(4); + buf1.push_back(5); + buf1.push_back(6); + + ring_buffer buf2; + + buf2.push_back(10); + buf2.push_back(20); + buf2.push_back(30); + buf2.push_back(40); + buf2.push_back(50); + buf2.push_back(60); + + std::swap(buf1, buf2); + + { + std::vector expected{30, 40, 50, 60}; + std::vector actual; + for (int& i : buf1) { + actual.push_back(i); + } + assert(actual == expected); + } + + { + std::vector expected{3, 4, 5, 6}; + std::vector actual; + for (int& i : buf2) { + actual.push_back(i); + } + assert(actual == expected); + } +}