@@ -12,75 +12,88 @@ class CircularBufferTest : public ::testing::Test{
1212
1313protected:
1414
15- CircularBuffer<std::string> test_buff {TEST_BUFFER_SIZE};
16-
15+ CircularBuffer<std::string> test_str_buff {TEST_BUFFER_SIZE};
16+ CircularBuffer< int > test_int_buff{TEST_BUFFER_SIZE};
1717};
1818
1919TEST_F (CircularBufferTest, IteratorBasedLoopTest){
2020 // create full buffer
2121 for (int i=0 ; i<TEST_BUFFER_SIZE; i++)
22- test_buff .push_back (" string" + std::to_string (i));
22+ test_str_buff .push_back (" string" + std::to_string (i));
2323 int i = 0 ;
24- for (auto it = test_buff .begin (); it!=test_buff .end (); it++)
24+ for (auto it = test_str_buff .begin (); it!=test_str_buff .end (); it++)
2525 EXPECT_EQ (*it, " string" + std::to_string (i++));
2626 // partially fill buffers
27- test_buff .clear ();
27+ test_str_buff .clear ();
2828 for (int i=0 ; i<TEST_BUFFER_SIZE/2 ; i++)
29- test_buff .push_back (" string" + std::to_string (i));
29+ test_str_buff .push_back (" string" + std::to_string (i));
3030 // test begin and end on partially full buffer
3131 i = 0 ;
32- for (auto it = test_buff .begin (); it!=test_buff .end (); it++)
32+ for (auto it = test_str_buff .begin (); it!=test_str_buff .end (); it++)
3333 EXPECT_EQ (*it, " string" + std::to_string (i++));
3434 // test size with increment variable
3535 EXPECT_EQ (i, TEST_BUFFER_SIZE/2 );
36-
37-
3836}
3937
4038TEST_F (CircularBufferTest, RangeBasedLoopTest){
4139 // create full buffer
4240 for (int i=0 ; i<TEST_BUFFER_SIZE; i++)
43- test_buff .push_back (" string" + std::to_string (i));
41+ test_str_buff .push_back (" string" + std::to_string (i));
4442 int i = 0 ;
4543 // copied elements
46- for (auto buff_elem : test_buff )
44+ for (auto buff_elem : test_str_buff )
4745 EXPECT_EQ (buff_elem, " string" + std::to_string (i++));
4846 // auto reference
4947 i = 0 ;
50- for (auto & buff_elem : test_buff )
48+ for (auto & buff_elem : test_str_buff )
5149 EXPECT_EQ (buff_elem, " string" + std::to_string (i++));
5250 // auto const reference
5351 i = 0 ;
54- for (const auto & buff_elem : test_buff )
52+ for (const auto & buff_elem : test_str_buff )
5553 EXPECT_EQ (buff_elem, " string" + std::to_string (i++));
5654 // check iterators after modifications
5755 for (int i = 0 ; i<REDUCE_SIZE; i++)
58- test_buff .pop_front ();
56+ test_str_buff .pop_front ();
5957 i = 0 ;
60- for (const auto & buff_elem : test_buff )
58+ for (const auto & buff_elem : test_str_buff )
6159 EXPECT_EQ (buff_elem, " string" + std::to_string (i++));
6260 EXPECT_EQ (i, TEST_BUFFER_SIZE - REDUCE_SIZE);
6361}
6462
6563TEST_F (CircularBufferTest, FindTest){
6664 // create full buffer
6765 for (int i=0 ; i<TEST_BUFFER_SIZE; i++)
68- test_buff .push_back (" string" + std::to_string (i));
69- auto result = std::find (test_buff .cbegin (), test_buff .cend (), " string50" );
66+ test_str_buff .push_back (" string" + std::to_string (i));
67+ auto result = std::find (test_str_buff .cbegin (), test_str_buff .cend (), " string50" );
7068 EXPECT_EQ (*result, " string50" );
71- result = std::find (test_buff.cbegin (), test_buff.cend (), " string100" );
72- EXPECT_EQ (result, test_buff.cend ());
69+ result = std::find (test_str_buff.cbegin (), test_str_buff.cend (), " string100" );
70+ EXPECT_EQ (result, test_str_buff.cend ());
71+ // partial buffer search
72+ result = std::find (test_str_buff.cbegin (), test_str_buff.cbegin () + 50 , " string30" );
73+ EXPECT_EQ (*result, " string30" );
74+ result = std::find (test_str_buff.cbegin (), test_str_buff.cbegin () + 50 , " string51" );
75+ EXPECT_EQ (result, test_str_buff.cbegin () + 50 );
7376}
7477
7578TEST_F (CircularBufferTest, ForEachTest){
7679 // create full buffer
7780 for (int i=0 ; i<TEST_BUFFER_SIZE; i++)
78- test_buff .push_back (" string" + std::to_string (i));
79- std::for_each (test_buff .begin (), test_buff .end (), [](std::string& elem){ elem = elem + " modified" ;});
81+ test_str_buff .push_back (" string" + std::to_string (i));
82+ std::for_each (test_str_buff .begin (), test_str_buff .end (), [](std::string& elem){ elem = elem + " modified" ;});
8083 int i=0 ;
81- for (const auto & elem: test_buff )
84+ for (const auto & elem: test_str_buff )
8285 EXPECT_EQ (elem, " string" + std::to_string (i++) + " modified" );
8386}
8487
88+ TEST_F (CircularBufferTest, SortTest){
89+ // create full buffer
90+ for (int i=0 ; i<TEST_BUFFER_SIZE; i++)
91+ test_int_buff.push_back (i);
92+ std::sort (test_int_buff.begin (), test_int_buff.end (), std::greater<int >());
93+ int i = 99 ;
94+ for (const auto & elem: test_int_buff)
95+ EXPECT_EQ (elem, i--);
96+ }
97+
8598
8699
0 commit comments