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