22 #include <core/utils/circular_buffer.h>
24 #include <catch2/catch.hpp>
29 TEST_CASE(
"Access elements",
"[circular_buffer]")
32 for (
int i = 0; i < 1000; i++) {
35 for (
int i = 0; i < 1000; i++) {
36 REQUIRE(buffer[i] == i);
37 REQUIRE(buffer.at(i) == i);
41 TEST_CASE(
"Delete elements",
"[circular_buffer]")
46 REQUIRE(buffer.size() == 1);
47 REQUIRE(buffer[0] == 2);
50 TEST_CASE(
"Out of max range",
"[circular_buffer]")
54 CHECK_NOTHROW(i = buffer[1]);
55 REQUIRE_THROWS_AS(i = buffer.at(1), std::out_of_range);
58 TEST_CASE(
"Out of range",
"[circular_buffer]")
63 REQUIRE_NOTHROW(i = buffer[1]);
64 REQUIRE_THROWS_AS(i = buffer.at(1), std::out_of_range);
67 TEST_CASE(
"Copy constructor",
"[circular_buffer]")
73 REQUIRE(b2.get_max_size() == 5);
80 REQUIRE_THROWS_AS(b1.at(2), std::out_of_range);
83 TEST_CASE(
"Iterator",
"[circular_buffer]")
86 for (
int i = 0; i < 10; i++) {
90 for (
auto it = buffer.begin(); it != buffer.end(); it++) {
95 TEST_CASE(
"Reverse Iterator",
"[circular_buffer]")
98 for (
int i = 0; i < 10; i++) {
102 for (
auto it = buffer.rbegin(); it != buffer.rend(); it++) {
Circular buffer with a fixed size.
Fawkes library namespace.