Skip to content

Commit dd7e77c

Browse files
author
Haripriya Dhanasekaran
committed
Added Unit Test for EventBuffer class
1 parent 79a98d9 commit dd7e77c

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ add_executable(tests
363363
Testing/UnitTesting/GraphManagerTests.cpp
364364
Testing/Utils/ParameterManagerTests.cpp
365365
Testing/Utils/CircularBufferTests.cpp
366+
Testing/UnitTesting/EventBufferTests.cpp
366367
Testing/UnitTesting/XmlRecorderTests.cpp
367368
Testing/UnitTesting/Hdf5RecorderTests.cpp)
368369

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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

Comments
 (0)