1a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner#include <vector>
2a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner#include <list>
3a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner#include <algorithm>
4a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
5a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner#include "cppunit/cppunit_proxy.h"
6a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
7a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
8a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turnerusing namespace std;
9a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner#endif
10a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
11a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner//
12a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner// TestCase class
13a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner//
14a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turnerclass ReviterTest : public CPPUNIT_NS::TestCase
15a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner{
16a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_TEST_SUITE(ReviterTest);
17a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_TEST(reviter1);
18a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_TEST(reviter2);
19a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_TEST(revbit1);
20a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_TEST_SUITE_END();
21a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
22a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turnerprotected:
23a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  void reviter1();
24a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  void reviter2();
25a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  void revbit1();
26a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner};
27a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
28a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' TurnerCPPUNIT_TEST_SUITE_REGISTRATION(ReviterTest);
29a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
30a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner//
31a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner// tests implementation
32a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner//
33a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turnervoid ReviterTest::reviter1()
34a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner{
35a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  int array [] = { 1, 5, 2, 3 };
36a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
37a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  vector<int> v(array, array + 4);
38a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  typedef vector<int>::reverse_iterator reviter;
39a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  reviter r(v.rend());
40a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  r--;
41a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
42a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r-- == 1);
43a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r-- == 5);
44a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r-- == 2);
45a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r == 3);
46a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(r==v.rbegin());
47a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner}
48a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turnervoid ReviterTest::reviter2()
49a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner{
50a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  int array [] = { 1, 5, 2, 3 };
51a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
52a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  vector<int> v(array, array + 4);
53a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  vector<int>::reverse_iterator r;
54a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  r = v.rbegin();
55a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r++ == 3);
56a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r++ == 2);
57a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r++ == 5);
58a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r++ == 1);
59a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(r==v.rend());
60a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner}
61a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turnervoid ReviterTest::revbit1()
62a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner{
63a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  int array [] = { 1, 5, 2, 3 };
64a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner
65a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  list<int> v(array, array + 4);
66a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  list<int>::reverse_iterator r(v.rbegin());
67a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r++ == 3);
68a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r++ == 2);
69a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r++ == 5);
70a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(*r++ == 1);
71a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner  CPPUNIT_ASSERT(r==v.rend());
72a9225dc81bae267b3454f3676a9108ecb4c9264fDavid 'Digit' Turner}
73