1 #include <algorithm> 2 #include <list> 3 #include <queue> 4 #include <deque> 5 #include <stack> 6 7 #include "cppunit/cppunit_proxy.h" 8 9 #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 10 using namespace std; 11 #endif 12 13 // 14 // TestCase class 15 // 16 class StackTest : public CPPUNIT_NS::TestCase 17 { 18 CPPUNIT_TEST_SUITE(StackTest); 19 CPPUNIT_TEST(stack1); 20 CPPUNIT_TEST(stack2); 21 CPPUNIT_TEST_SUITE_END(); 22 23 protected: 24 void stack1(); 25 void stack2(); 26 }; 27 28 CPPUNIT_TEST_SUITE_REGISTRATION(StackTest); 29 30 // 31 // tests implementation 32 // 33 void StackTest::stack1() 34 { 35 stack<int, deque<int> > s; 36 s.push(42); 37 s.push(101); 38 s.push(69); 39 CPPUNIT_ASSERT(s.top()==69); 40 s.pop(); 41 CPPUNIT_ASSERT(s.top()==101); 42 s.pop(); 43 CPPUNIT_ASSERT(s.top()==42); 44 s.pop(); 45 CPPUNIT_ASSERT(s.empty()); 46 } 47 void StackTest::stack2() 48 { 49 stack<int, list<int> > s; 50 s.push(42); 51 s.push(101); 52 s.push(69); 53 CPPUNIT_ASSERT(s.top()==69); 54 s.pop(); 55 CPPUNIT_ASSERT(s.top()==101); 56 s.pop(); 57 CPPUNIT_ASSERT(s.top()==42); 58 s.pop(); 59 CPPUNIT_ASSERT(s.empty()); 60 } 61