• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)
10 using namespace std;
11 #endif
12 
13 //
14 // TestCase class
15 //
16 class 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 
23 protected:
24   void pqueue1();
25   void queue1();
26 };
27 
28 CPPUNIT_TEST_SUITE_REGISTRATION(QueueTest);
29 
30 //
31 // tests implementation
32 //
pqueue1()33 void 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 }
queue1()49 void 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