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