Update contrib.
1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
23 #include "cppunit/cppunit_proxy.h"
25 #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
32 class QueueTest : public CPPUNIT_NS::TestCase
34 CPPUNIT_TEST_SUITE(QueueTest);
35 CPPUNIT_TEST(pqueue1);
37 CPPUNIT_TEST(queue_cov);
38 CPPUNIT_TEST(pqueue_cov1);
39 CPPUNIT_TEST(pqueue_cov2);
40 CPPUNIT_TEST_SUITE_END();
50 CPPUNIT_TEST_SUITE_REGISTRATION(QueueTest);
53 // tests implementation
55 void QueueTest::pqueue1()
57 priority_queue<int, deque<int>, less<int> > q;
62 CPPUNIT_ASSERT( q.top()==101 );
64 CPPUNIT_ASSERT( q.top()==69 );
66 CPPUNIT_ASSERT( q.top()==42 );
69 CPPUNIT_ASSERT(q.empty());
71 void QueueTest::queue1()
73 queue<int, list<int> > q;
78 CPPUNIT_ASSERT( q.front()==42 );
80 CPPUNIT_ASSERT( q.front()==101 );
82 CPPUNIT_ASSERT( q.front()==69 );
85 CPPUNIT_ASSERT(q.empty());
87 void QueueTest::queue_cov()
91 queue<int, list<int> > q;
96 CPPUNIT_ASSERT( q.size()==3 );
98 CPPUNIT_ASSERT( q.size()==2 );
100 CPPUNIT_ASSERT( q.size()==1 );
103 CPPUNIT_ASSERT(q.empty());
106 queue<int, list<int> > q;
110 CPPUNIT_ASSERT(q.back() == 69);
114 queue<int> const& cv = myqueue;
117 CPPUNIT_ASSERT(cv.front() == 77);
118 CPPUNIT_ASSERT(cv.back() == 16);
122 void QueueTest::pqueue_cov1()
126 priority_queue<int> pq;
131 CPPUNIT_ASSERT( pq.size()==3 );
133 CPPUNIT_ASSERT( pq.size()==2 );
135 CPPUNIT_ASSERT( pq.size()==1 );
137 CPPUNIT_ASSERT(pq.empty());
148 flag = myqueue < myqueue1;
149 CPPUNIT_ASSERT(flag == true);
160 flag = (myqueue == myqueue1);
161 CPPUNIT_ASSERT(flag == true);
165 void QueueTest::pqueue_cov2()
168 int myints[]= {10,60,50,20};
169 priority_queue<int> first;
170 priority_queue<int> second (myints,myints+3);
171 priority_queue< int, vector<int>, greater<int> > third (myints,myints+3);
172 CPPUNIT_ASSERT(first.empty() == true);
173 CPPUNIT_ASSERT(second.size() == 3);
174 CPPUNIT_ASSERT(third.top() == 10);
176 CPPUNIT_ASSERT(third.top() == 50);
178 CPPUNIT_ASSERT(third.top() == 60);