1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/genericopenlibs/cppstdlib/stl/test/unit/func_test.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,76 @@
1.4 +#include <vector>
1.5 +#include <algorithm>
1.6 +#include <functional>
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 FuncTest : public CPPUNIT_NS::TestCase
1.18 +{
1.19 + CPPUNIT_TEST_SUITE(FuncTest);
1.20 + CPPUNIT_TEST(func1);
1.21 + CPPUNIT_TEST(func2);
1.22 + CPPUNIT_TEST(func3);
1.23 + CPPUNIT_TEST_SUITE_END();
1.24 +
1.25 +protected:
1.26 + void func1();
1.27 + void func2();
1.28 + void func3();
1.29 + static bool bigger(int i_);
1.30 + static bool bigger_than(int x_, int y_);
1.31 +};
1.32 +
1.33 +CPPUNIT_TEST_SUITE_REGISTRATION(FuncTest);
1.34 +
1.35 +//
1.36 +// tests implementation
1.37 +//
1.38 +bool FuncTest::bigger(int i_)
1.39 +{
1.40 + return i_ > 3;
1.41 +}
1.42 +bool FuncTest::bigger_than(int x_, int y_)
1.43 +{
1.44 + return x_ > y_;
1.45 +}
1.46 +void FuncTest::func1()
1.47 +{
1.48 + vector<int>v;
1.49 + v.push_back(4);
1.50 + v.push_back(1);
1.51 + v.push_back(5);
1.52 + int n = count_if(v.begin(), v.end(), bigger);
1.53 + CPPUNIT_ASSERT( n == 2 )
1.54 +}
1.55 +
1.56 +void FuncTest::func2()
1.57 +{
1.58 + vector<int> v;
1.59 + v.push_back(4);
1.60 + v.push_back(1);
1.61 + v.push_back(5);
1.62 + sort(v.begin(), v.end(), bigger_than);
1.63 +
1.64 + CPPUNIT_ASSERT( v[0] == 5 );
1.65 + CPPUNIT_ASSERT( v[1] == 4 );
1.66 + CPPUNIT_ASSERT( v[2] == 1 );
1.67 +}
1.68 +void FuncTest::func3()
1.69 +{
1.70 + vector<int> v;
1.71 + v.push_back(4);
1.72 + v.push_back(1);
1.73 + v.push_back(5);
1.74 + sort(v.begin(), v.end(), greater<int>());
1.75 +
1.76 + CPPUNIT_ASSERT( v[0] == 5 );
1.77 + CPPUNIT_ASSERT( v[1] == 4 );
1.78 + CPPUNIT_ASSERT( v[2] == 1 );
1.79 +}