func_test.cpp revision e46c9386c4f79aa40185f79a19fc5b2a7ef528b3
12949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <vector> 22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <algorithm> 32949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <functional> 42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "cppunit/cppunit_proxy.h" 62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectusing namespace std; 92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project// 122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project// TestCase class 132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project// 142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectclass FuncTest : public CPPUNIT_NS::TestCase 152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{ 162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_TEST_SUITE(FuncTest); 172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_TEST(func1); 182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_TEST(func2); 192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_TEST(func3); 202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_TEST_SUITE_END(); 212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectprotected: 232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project void func1(); 242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project void func2(); 252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project void func3(); 2653f17a9db278d33517d9888dd77848f554522a38JP Abgrall static bool bigger(int i_); 272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project static bool bigger_than(int x_, int y_); 282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project}; 292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source ProjectCPPUNIT_TEST_SUITE_REGISTRATION(FuncTest); 312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project// 332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project// tests implementation 342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project// 352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectbool FuncTest::bigger(int i_) 362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{ 372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project return i_ > 3; 382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project} 392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectbool FuncTest::bigger_than(int x_, int y_) 402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{ 412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project return x_ > y_; 422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project} 432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectvoid FuncTest::func1() 442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{ 452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project vector<int>v; 4653f17a9db278d33517d9888dd77848f554522a38JP Abgrall v.push_back(4); 4753f17a9db278d33517d9888dd77848f554522a38JP Abgrall v.push_back(1); 482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project v.push_back(5); 492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project int n = count_if(v.begin(), v.end(), bigger); 502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_ASSERT( n == 2 ) 5153f17a9db278d33517d9888dd77848f554522a38JP Abgrall} 522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectvoid FuncTest::func2() 542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{ 552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project vector<int> v; 562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project v.push_back(4); 572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project v.push_back(1); 5853f17a9db278d33517d9888dd77848f554522a38JP Abgrall v.push_back(5); 592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project sort(v.begin(), v.end(), bigger_than); 602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_ASSERT( v[0] == 5 ); 622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_ASSERT( v[1] == 4 ); 632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_ASSERT( v[2] == 1 ); 642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project} 6553f17a9db278d33517d9888dd77848f554522a38JP Abgrallvoid FuncTest::func3() 662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project{ 672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project vector<int> v; 682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project v.push_back(4); 692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project v.push_back(1); 702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project v.push_back(5); 712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project sort(v.begin(), v.end(), greater<int>()); 722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 7353f17a9db278d33517d9888dd77848f554522a38JP Abgrall CPPUNIT_ASSERT( v[0] == 5 ); 742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_ASSERT( v[1] == 4 ); 752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project CPPUNIT_ASSERT( v[2] == 1 ); 762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project} 772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project