| #include <algorithm> |
| #include <list> |
| #include <queue> |
| #include <deque> |
| #include <stack> |
| |
| #include "cppunit/cppunit_proxy.h" |
| |
| #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) |
| using namespace std; |
| #endif |
| |
| // |
| // TestCase class |
| // |
| class StackTest : public CPPUNIT_NS::TestCase |
| { |
| CPPUNIT_TEST_SUITE(StackTest); |
| CPPUNIT_TEST(stack1); |
| CPPUNIT_TEST(stack2); |
| CPPUNIT_TEST_SUITE_END(); |
| |
| protected: |
| void stack1(); |
| void stack2(); |
| }; |
| |
| CPPUNIT_TEST_SUITE_REGISTRATION(StackTest); |
| |
| // |
| // tests implementation |
| // |
| void StackTest::stack1() |
| { |
| stack<int, deque<int> > s; |
| s.push(42); |
| s.push(101); |
| s.push(69); |
| CPPUNIT_ASSERT(s.top()==69); |
| s.pop(); |
| CPPUNIT_ASSERT(s.top()==101); |
| s.pop(); |
| CPPUNIT_ASSERT(s.top()==42); |
| s.pop(); |
| CPPUNIT_ASSERT(s.empty()); |
| } |
| void StackTest::stack2() |
| { |
| stack<int, list<int> > s; |
| s.push(42); |
| s.push(101); |
| s.push(69); |
| CPPUNIT_ASSERT(s.top()==69); |
| s.pop(); |
| CPPUNIT_ASSERT(s.top()==101); |
| s.pop(); |
| CPPUNIT_ASSERT(s.top()==42); |
| s.pop(); |
| CPPUNIT_ASSERT(s.empty()); |
| } |