#include "quiche/common/quiche_circular_deque.h"
#include <cstddef>
#include <cstdint>
#include <list>
#include <memory>
#include <ostream>
#include <type_traits>
#include <utility>
#include "quiche/common/platform/api/quiche_logging.h"
#include "quiche/common/platform/api/quiche_test.h"
ElementsAre;
namespace quiche {
namespace test {
namespace {
template <typename T, template <typename> class BaseAllocator = std::allocator>
class CountingAllocator : public BaseAllocator<T> { … };
template <typename T, typename propagate_on_copy_assignment,
typename propagate_on_move_assignment, typename propagate_on_swap,
bool equality_result,
template <typename> class BaseAllocator = std::allocator>
struct ConfigurableAllocator : public BaseAllocator<T> { … };
template <typename Deque>
void ShiftRight(Deque* dq, bool emplace) { … }
template <typename Deque>
void ShiftLeft(Deque* dq, bool emplace) { … }
class QuicheCircularDequeTest : public QuicheTest { … };
TEST_F(QuicheCircularDequeTest, Empty) { … }
TEST_F(QuicheCircularDequeTest, Constructor) { … }
TEST_F(QuicheCircularDequeTest, Assign) { … }
TEST_F(QuicheCircularDequeTest, Access) { … }
TEST_F(QuicheCircularDequeTest, Iterate) { … }
TEST_F(QuicheCircularDequeTest, Iterator) { … }
TEST_F(QuicheCircularDequeTest, Resize) { … }
namespace {
class Foo { … };
}
TEST_F(QuicheCircularDequeTest, RelocateNonTriviallyCopyable) { … }
TEST_F(QuicheCircularDequeTest, PushPop) { … }
TEST_F(QuicheCircularDequeTest, Allocation) { … }
}
}
}
namespace {
SwappableAllocator;
UnswappableEqualAllocator;
UnswappableUnequalAllocator;
QuicheCircularDequeTest;
TEST_F(QuicheCircularDequeTest, Swap) { … }
}