1+ #include < gtest/gtest.h>
2+ #include " RingBuffer.hpp"
3+ using namespace buffers ;
4+
5+ TEST (RingBufferTest, Test1) {
6+ ring_buffer<std::vector<int >, 3 > b1;
7+
8+ for (auto i = 0 ; i < 9 ; ++i){
9+ b1.push_back (std::vector<int >{i, i + 1 , i + 2 });
10+ }
11+
12+ auto b2 = b1;
13+
14+ ring_buffer<std::vector<int >, 3 > b3;
15+ b3 = b2;
16+ b3.pop_front ();
17+
18+ std::vector<std::vector<int >> expected = {{7 , 8 , 9 }, {8 , 9 , 10 }};
19+ auto it = b3.cbegin ();
20+ for (const auto & vec : expected) {
21+ EXPECT_EQ (*it, vec);
22+ ++it;
23+ }
24+ }
25+
26+ TEST (RingBufferTest, Test2) {
27+ ring_buffer<int , 3 > b1;
28+ for (int i = 0 ; i < 10 ; i++){
29+ b1.push_back (i);
30+ EXPECT_EQ (b1.front (), std::max (0 , i - 2 ));
31+ }
32+ }
33+
34+ TEST (RingBufferTest, Test3) {
35+ ring_buffer<int , 3 > b1;
36+ b1.push_back (1 );
37+ b1.push_back (2 );
38+ b1.push_back (3 );
39+ b1.push_back (4 ); // This should overwrite the first element (1)
40+
41+ EXPECT_EQ (b1.front (), 2 );
42+ EXPECT_EQ (b1.back (), 4 );
43+ }
44+
45+ TEST (RingBufferTest, Test4) {
46+ ring_buffer<int , 3 > b1;
47+ b1.push_back (1 );
48+ b1.push_back (2 );
49+ b1.push_back (3 );
50+ b1.pop_front (); // Remove the first element (1)
51+ b1.push_back (4 );
52+
53+ EXPECT_EQ (b1.front (), 2 );
54+ EXPECT_EQ (b1.back (), 4 );
55+ }
56+
57+ TEST (RingBufferTest, Test5) {
58+ ring_buffer<int , 3 > b1;
59+ b1.push_back (1 );
60+ b1.push_back (2 );
61+ b1.push_back (3 );
62+ b1.clear ();
63+
64+ EXPECT_TRUE (b1.empty ());
65+ EXPECT_EQ (b1.size (), 0 );
66+ }
67+
68+ int main (int argc, char **argv) {
69+ ::testing::InitGoogleTest (&argc, argv);
70+ return RUN_ALL_TESTS ();
71+ }
0 commit comments