queue_test.cpp revision e46c9386c4f79aa40185f79a19fc5b2a7ef528b3
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