|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Tests for Aleph::RingBuffer (tpl_ring_buffer.H). More...
#include <deque>#include <memory>#include <random>#include <stdexcept>#include <string>#include <type_traits>#include <utility>#include <gtest/gtest.h>#include <tpl_ring_buffer.H>Go to the source code of this file.
Functions | |
| TEST (RingBuffer, ConstructionAndBasicState) | |
| TEST (RingBuffer, FifoOrderWithWrapAround) | |
| TEST (RingBuffer, OverflowAndUnderflowThrow) | |
| TEST (RingBuffer, PutOverwriteImplementsSlidingWindow) | |
| TEST (RingBuffer, LogicalIndexingAndFrontBack) | |
| TEST (RingBuffer, IterationOldestToNewestAcrossWrap) | |
| TEST (RingBuffer, TraverseInFifoOrderWithEarlyStop) | |
| TEST (RingBuffer, MoveOnlyElementsAreSupported) | |
| TEST (RingBuffer, ElementLifetimesAreBalanced) | |
| TEST (RingBuffer, CopyAndMoveSemantics) | |
| TEST (RingBuffer, EqualityComparesLogicalContentOnly) | |
| TEST (RingBuffer, AlephConventionsEmptyClear) | |
| TEST (RingBuffer, RandomizedParityWithBoundedDeque) | |
Tests for Aleph::RingBuffer (tpl_ring_buffer.H).
Covers FIFO order across wrap-around, overflow/underflow checking, the put_overwrite sliding-window policy, logical indexing and iteration, move-only element support, element lifetime balance, copy/move semantics and a randomized parity check against std::deque bounded to the same capacity.
Definition in file ring_buffer_test.cc.
| TEST | ( | RingBuffer | , |
| AlephConventionsEmptyClear | |||
| ) |
Definition at line 338 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::available(), Aleph::RingBuffer< T >::empty(), Aleph::RingBuffer< T >::get_first(), Aleph::RingBuffer< T >::is_empty(), and Aleph::RingBuffer< T >::put().
| TEST | ( | RingBuffer | , |
| ConstructionAndBasicState | |||
| ) |
Definition at line 104 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::available(), Aleph::RingBuffer< T >::capacity(), Aleph::RingBuffer< T >::is_empty(), Aleph::RingBuffer< T >::is_full(), and Aleph::RingBuffer< T >::size().
| TEST | ( | RingBuffer | , |
| CopyAndMoveSemantics | |||
| ) |
Definition at line 299 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::capacity(), Aleph::RingBuffer< T >::get(), Aleph::RingBuffer< T >::put(), and Aleph::RingBuffer< T >::size().
| TEST | ( | RingBuffer | , |
| ElementLifetimesAreBalanced | |||
| ) |
Definition at line 277 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::clear(), Aleph::RingBuffer< T >::emplace(), Aleph::RingBuffer< T >::get(), and Aleph::RingBuffer< T >::put_overwrite().
| TEST | ( | RingBuffer | , |
| EqualityComparesLogicalContentOnly | |||
| ) |
Definition at line 325 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::put().
| TEST | ( | RingBuffer | , |
| FifoOrderWithWrapAround | |||
| ) |
Definition at line 116 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::get(), Aleph::RingBuffer< T >::is_empty(), Aleph::RingBuffer< T >::is_full(), and Aleph::RingBuffer< T >::put().
| TEST | ( | RingBuffer | , |
| IterationOldestToNewestAcrossWrap | |||
| ) |
Definition at line 190 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::begin(), Aleph::RingBuffer< T >::end(), Aleph::RingBuffer< T >::get(), and Aleph::RingBuffer< T >::put().
| TEST | ( | RingBuffer | , |
| LogicalIndexingAndFrontBack | |||
| ) |
Definition at line 170 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::back(), Aleph::RingBuffer< T >::front(), Aleph::RingBuffer< T >::get(), Aleph::RingBuffer< T >::get_first(), and Aleph::RingBuffer< T >::put().
| TEST | ( | RingBuffer | , |
| MoveOnlyElementsAreSupported | |||
| ) |
Definition at line 260 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::emplace(), Aleph::RingBuffer< T >::get(), Aleph::RingBuffer< T >::is_full(), Aleph::RingBuffer< T >::put(), Aleph::RingBuffer< T >::put_overwrite(), and Aleph::RingBuffer< T >::size().
| TEST | ( | RingBuffer | , |
| OverflowAndUnderflowThrow | |||
| ) |
Definition at line 136 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::emplace(), Aleph::RingBuffer< T >::get(), Aleph::RingBuffer< T >::get_first(), Aleph::RingBuffer< T >::get_last(), and Aleph::RingBuffer< T >::put().
| TEST | ( | RingBuffer | , |
| PutOverwriteImplementsSlidingWindow | |||
| ) |
Definition at line 151 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::get_first(), Aleph::RingBuffer< T >::get_last(), Aleph::RingBuffer< T >::put_overwrite(), and Aleph::RingBuffer< T >::size().
| TEST | ( | RingBuffer | , |
| RandomizedParityWithBoundedDeque | |||
| ) |
Definition at line 353 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::get(), Aleph::RingBuffer< T >::put(), Aleph::RingBuffer< T >::put_overwrite(), rng, and Aleph::RingBuffer< T >::size().
| TEST | ( | RingBuffer | , |
| TraverseInFifoOrderWithEarlyStop | |||
| ) |
Definition at line 239 of file ring_buffer_test.cc.
References Aleph::RingBuffer< T >::put(), and Aleph::RingBuffer< T >::traverse().