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