1#include <vector> 2#include <algorithm> 3#include <list> 4#include <deque> 5#include <queue> 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 QueueTest : public CPPUNIT_NS::TestCase 17{ 18 CPPUNIT_TEST_SUITE(QueueTest); 19 CPPUNIT_TEST(pqueue1); 20 CPPUNIT_TEST(queue1); 21 CPPUNIT_TEST_SUITE_END(); 22 23protected: 24 void pqueue1(); 25 void queue1(); 26}; 27 28CPPUNIT_TEST_SUITE_REGISTRATION(QueueTest); 29 30// 31// tests implementation 32// 33void QueueTest::pqueue1() 34{ 35 priority_queue<int, deque<int>, less<int> > q; 36 q.push(42); 37 q.push(101); 38 q.push(69); 39 40 CPPUNIT_ASSERT( q.top()==101 ); 41 q.pop(); 42 CPPUNIT_ASSERT( q.top()==69 ); 43 q.pop(); 44 CPPUNIT_ASSERT( q.top()==42 ); 45 q.pop(); 46 47 CPPUNIT_ASSERT(q.empty()); 48} 49void QueueTest::queue1() 50{ 51 queue<int, list<int> > q; 52 q.push(42); 53 q.push(101); 54 q.push(69); 55 56 CPPUNIT_ASSERT( q.front()==42 ); 57 q.pop(); 58 CPPUNIT_ASSERT( q.front()==101 ); 59 q.pop(); 60 CPPUNIT_ASSERT( q.front()==69 ); 61 q.pop(); 62 63 CPPUNIT_ASSERT(q.empty()); 64} 65