1+ /* *
2+ * @file EventBufferTests.cpp
3+ *
4+ * @brief This file contains the unit tests for EventBuffer using GTest.
5+ *
6+ * @ingroup Testing/UnitTesting
7+ */
8+
9+ #include " gtest/gtest.h"
10+ #include " EventBuffer.h"
11+
12+ // A buffer which can hold 5 elements
13+ EventBuffer buffer (5 );
14+
15+ // GetElement when buffer is empty
16+ // Assuming getElement() returns uint64_t
17+ TEST (EventBufferTest, GetElementFromEmptyBuffer)
18+ {
19+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (0 )), std::numeric_limits<unsigned long >::max ());
20+ }
21+
22+ // GetPastEvent when buffer is empty
23+ TEST (EventBufferTest, GetPastEventFromEmptyBuffer)
24+ {
25+ EXPECT_EQ (buffer.getPastEvent (-1 ), std::numeric_limits<unsigned long >::max ());
26+ }
27+
28+ // Insert into empty buffer
29+ TEST (EventBufferTest, InsertEventEmptyBuffer) {
30+ buffer.insertEvent (10 );
31+ buffer.insertEvent (20 );
32+
33+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (0 )), 10 );
34+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (1 )), 20 );
35+ }
36+
37+ // Insert when buffer is full, test wrap around
38+ TEST (EventBufferTest, BufferWrapAround) {
39+ buffer.insertEvent (30 );
40+ buffer.insertEvent (40 );
41+ buffer.insertEvent (50 );
42+
43+ // Insert into A full buffer
44+ buffer.insertEvent (60 );
45+
46+ // The buffer should have overwritten 60 inplace of 10
47+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (0 )), 60 );
48+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (1 )), 20 );
49+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (2 )), 30 );
50+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (3 )), 40 );
51+ EXPECT_EQ (std::get<uint64_t >(buffer.getElement (4 )), 50 );
52+ }
0 commit comments