#include "LinkedQueue.h" #include using namespace Kylin; class LinkedQueueTest { public: LinkedQueue queue{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; }; BOOST_AUTO_TEST_SUITE(LinkedQueueTestCase) BOOST_FIXTURE_TEST_CASE(Size, LinkedQueueTest) { BOOST_CHECK_EQUAL(queue.size(), 10); } BOOST_FIXTURE_TEST_CASE(Head, LinkedQueueTest) { BOOST_CHECK_EQUAL(queue.head(), 0); } BOOST_FIXTURE_TEST_CASE(Enqueue, LinkedQueueTest) { queue.enqueue(10); BOOST_CHECK_EQUAL(queue.size(), 11); } BOOST_FIXTURE_TEST_CASE(Dequeue, LinkedQueueTest) { BOOST_CHECK_EQUAL(queue.dequeue(), 0); BOOST_CHECK_EQUAL(queue.size(), 9); } BOOST_FIXTURE_TEST_CASE(Clear, LinkedQueueTest) { queue.clear(); BOOST_CHECK_EQUAL(queue.size(), 0); } BOOST_FIXTURE_TEST_CASE(Swap, LinkedQueueTest) { Kylin::LinkedQueue queue2; for (size_t i = 0; i < 5; i++) { queue2.enqueue(i + 10); } queue.swap(queue2); BOOST_CHECK_EQUAL(queue.size(), 5); BOOST_CHECK_EQUAL(queue2.size(), 10); for (size_t i = 0; i < 5; i++) { BOOST_CHECK_EQUAL(queue.dequeue(), i + 10); } for (size_t i = 0; i < 10; i++) { BOOST_CHECK_EQUAL(queue2.dequeue(), i); } } BOOST_FIXTURE_TEST_CASE(MoveConstructor, LinkedQueueTest) { auto queue2(std::move(queue)); BOOST_CHECK_EQUAL(queue.empty(), true); BOOST_CHECK_EQUAL(queue2.size(), 10); } BOOST_AUTO_TEST_SUITE_END()