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) 10using namespace std; 11#endif 12 13// 14// TestCase class 15// 16class 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 23protected: 24 void stack1(); 25 void stack2(); 26}; 27 28CPPUNIT_TEST_SUITE_REGISTRATION(StackTest); 29 30// 31// tests implementation 32// 33void 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} 47void 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