diff -r 000000000000 -r bde4ae8d615e os/ossrv/genericopenlibs/cppstdlib/stl/test/unit/func_test.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/genericopenlibs/cppstdlib/stl/test/unit/func_test.cpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,76 @@ +#include +#include +#include + +#include "cppunit/cppunit_proxy.h" + +#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) +using namespace std; +#endif + +// +// TestCase class +// +class FuncTest : public CPPUNIT_NS::TestCase +{ + CPPUNIT_TEST_SUITE(FuncTest); + CPPUNIT_TEST(func1); + CPPUNIT_TEST(func2); + CPPUNIT_TEST(func3); + CPPUNIT_TEST_SUITE_END(); + +protected: + void func1(); + void func2(); + void func3(); + static bool bigger(int i_); + static bool bigger_than(int x_, int y_); +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(FuncTest); + +// +// tests implementation +// +bool FuncTest::bigger(int i_) +{ + return i_ > 3; +} +bool FuncTest::bigger_than(int x_, int y_) +{ + return x_ > y_; +} +void FuncTest::func1() +{ + vectorv; + v.push_back(4); + v.push_back(1); + v.push_back(5); + int n = count_if(v.begin(), v.end(), bigger); + CPPUNIT_ASSERT( n == 2 ) +} + +void FuncTest::func2() +{ + vector v; + v.push_back(4); + v.push_back(1); + v.push_back(5); + sort(v.begin(), v.end(), bigger_than); + + CPPUNIT_ASSERT( v[0] == 5 ); + CPPUNIT_ASSERT( v[1] == 4 ); + CPPUNIT_ASSERT( v[2] == 1 ); +} +void FuncTest::func3() +{ + vector v; + v.push_back(4); + v.push_back(1); + v.push_back(5); + sort(v.begin(), v.end(), greater()); + + CPPUNIT_ASSERT( v[0] == 5 ); + CPPUNIT_ASSERT( v[1] == 4 ); + CPPUNIT_ASSERT( v[2] == 1 ); +}