#include "LinkedStack.h" #include using namespace Kylin; class LinkedStackTest { public: LinkedStack stack{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; }; BOOST_AUTO_TEST_SUITE(LinkedStackTestCase) BOOST_FIXTURE_TEST_CASE(Push, LinkedStackTest) { stack.push(123); BOOST_CHECK_EQUAL(stack.size(), 11); } BOOST_FIXTURE_TEST_CASE(Pop, LinkedStackTest) { BOOST_CHECK_EQUAL(stack.pop(), 9); BOOST_CHECK_EQUAL(stack.size(), 9); } BOOST_FIXTURE_TEST_CASE(Top, LinkedStackTest) { BOOST_CHECK_EQUAL(stack.top(), 9); BOOST_CHECK_EQUAL(stack.size(), 10); } BOOST_FIXTURE_TEST_CASE(Size, LinkedStackTest) { BOOST_CHECK_EQUAL(stack.size(), 10); } BOOST_FIXTURE_TEST_CASE(Clear, LinkedStackTest) { stack.clear(); BOOST_CHECK_EQUAL(stack.size(), 0); } BOOST_FIXTURE_TEST_CASE(MoveConstructor, LinkedStackTest) { auto stack2(std::move(stack)); BOOST_CHECK_EQUAL(stack.size(), 0); BOOST_CHECK_EQUAL(stack2.size(), 10); } BOOST_AUTO_TEST_SUITE_END()