Added CircularBufferWithNestedCircularBuffer test
This commit is contained in:
parent
1805e4c7ad
commit
44bea612ff
@ -74,3 +74,44 @@ TEST_F(CircularBufferTest, FullAndEmpty) {
|
||||
// Try popping from an empty buffer
|
||||
EXPECT_EQ(buffer->popFront(item), ErrorCode::BUFFER_EMPTY);
|
||||
}
|
||||
|
||||
// Test CircularBuffer with nested CircularBuffer
|
||||
TEST_F(CircularBufferTest, CircularBufferWithNestedCircularBuffer) {
|
||||
CircularBuffer<CircularBuffer<char>*> charBuffer(2);
|
||||
|
||||
CircularBuffer<char> charSubBuffer1(3);
|
||||
CircularBuffer<char> charSubBuffer2(3);
|
||||
|
||||
EXPECT_EQ(charSubBuffer1.pushBack('a'), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(charSubBuffer1.pushBack('b'), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(charSubBuffer1.pushBack('c'), ErrorCode::SUCCESS);
|
||||
|
||||
EXPECT_EQ(charSubBuffer2.pushBack('d'), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(charSubBuffer2.pushBack('e'), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(charSubBuffer2.pushBack('f'), ErrorCode::SUCCESS);
|
||||
|
||||
EXPECT_EQ(charBuffer.pushBack(&charSubBuffer1), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(charBuffer.pushBack(&charSubBuffer2), ErrorCode::SUCCESS);
|
||||
|
||||
CircularBuffer<char>* poppedCharSubBuffer;
|
||||
EXPECT_EQ(charBuffer.popFront(poppedCharSubBuffer), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(poppedCharSubBuffer, &charSubBuffer1);
|
||||
|
||||
char c;
|
||||
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(c, 'a');
|
||||
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(c, 'b');
|
||||
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(c, 'c');
|
||||
|
||||
EXPECT_EQ(charBuffer.popFront(poppedCharSubBuffer), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(poppedCharSubBuffer, &charSubBuffer2);
|
||||
|
||||
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(c, 'd');
|
||||
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(c, 'e');
|
||||
EXPECT_EQ(poppedCharSubBuffer->popFront(c), ErrorCode::SUCCESS);
|
||||
EXPECT_EQ(c, 'f');
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user