1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/genericopenlibs/cppstdlib/stl/test/unit/reviter_test.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,72 @@
1.4 +#include <vector>
1.5 +#include <list>
1.6 +#include <algorithm>
1.7 +
1.8 +#include "cppunit/cppunit_proxy.h"
1.9 +
1.10 +#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
1.11 +using namespace std;
1.12 +#endif
1.13 +
1.14 +//
1.15 +// TestCase class
1.16 +//
1.17 +class ReviterTest : public CPPUNIT_NS::TestCase
1.18 +{
1.19 + CPPUNIT_TEST_SUITE(ReviterTest);
1.20 + CPPUNIT_TEST(reviter1);
1.21 + CPPUNIT_TEST(reviter2);
1.22 + CPPUNIT_TEST(revbit1);
1.23 + CPPUNIT_TEST_SUITE_END();
1.24 +
1.25 +protected:
1.26 + void reviter1();
1.27 + void reviter2();
1.28 + void revbit1();
1.29 +};
1.30 +
1.31 +CPPUNIT_TEST_SUITE_REGISTRATION(ReviterTest);
1.32 +
1.33 +//
1.34 +// tests implementation
1.35 +//
1.36 +void ReviterTest::reviter1()
1.37 +{
1.38 + int array [] = { 1, 5, 2, 3 };
1.39 +
1.40 + vector<int> v(array, array + 4);
1.41 + typedef vector<int>::reverse_iterator reviter;
1.42 + reviter r(v.rend());
1.43 + r--;
1.44 +
1.45 + CPPUNIT_ASSERT(*r-- == 1);
1.46 + CPPUNIT_ASSERT(*r-- == 5);
1.47 + CPPUNIT_ASSERT(*r-- == 2);
1.48 + CPPUNIT_ASSERT(*r == 3);
1.49 + CPPUNIT_ASSERT(r==v.rbegin());
1.50 +}
1.51 +void ReviterTest::reviter2()
1.52 +{
1.53 + int array [] = { 1, 5, 2, 3 };
1.54 +
1.55 + vector<int> v(array, array + 4);
1.56 + vector<int>::reverse_iterator r;
1.57 + r = v.rbegin();
1.58 + CPPUNIT_ASSERT(*r++ == 3);
1.59 + CPPUNIT_ASSERT(*r++ == 2);
1.60 + CPPUNIT_ASSERT(*r++ == 5);
1.61 + CPPUNIT_ASSERT(*r++ == 1);
1.62 + CPPUNIT_ASSERT(r==v.rend());
1.63 +}
1.64 +void ReviterTest::revbit1()
1.65 +{
1.66 + int array [] = { 1, 5, 2, 3 };
1.67 +
1.68 + list<int> v(array, array + 4);
1.69 + list<int>::reverse_iterator r(v.rbegin());
1.70 + CPPUNIT_ASSERT(*r++ == 3);
1.71 + CPPUNIT_ASSERT(*r++ == 2);
1.72 + CPPUNIT_ASSERT(*r++ == 5);
1.73 + CPPUNIT_ASSERT(*r++ == 1);
1.74 + CPPUNIT_ASSERT(r==v.rend());
1.75 +}