sl@0: #include sl@0: #include sl@0: #include "cppunit/cppunit_proxy.h" sl@0: sl@0: #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) sl@0: using namespace std; sl@0: #endif sl@0: sl@0: // sl@0: // TestCase class sl@0: // sl@0: class CountTest : public CPPUNIT_NS::TestCase sl@0: { sl@0: CPPUNIT_TEST_SUITE(CountTest); sl@0: CPPUNIT_TEST(count0); sl@0: CPPUNIT_TEST(count1); sl@0: CPPUNIT_TEST(countif1); sl@0: CPPUNIT_TEST_SUITE_END(); sl@0: sl@0: protected: sl@0: void count0(); sl@0: void count1(); sl@0: void countif1(); sl@0: static int odd(int a_); sl@0: }; sl@0: sl@0: CPPUNIT_TEST_SUITE_REGISTRATION(CountTest); sl@0: sl@0: // sl@0: // tests implementation sl@0: // sl@0: void CountTest::count0() sl@0: { sl@0: int numbers[10] = { 1, 2, 4, 1, 2, 4, 1, 2, 4, 1 }; sl@0: sl@0: int result = count(numbers, numbers + 10, 1); sl@0: CPPUNIT_ASSERT(result==4); sl@0: #if defined (STLPORT) && !defined (_STLP_NO_ANACHRONISMS) sl@0: result = 0; sl@0: count(numbers, numbers + 10, 1, result); sl@0: CPPUNIT_ASSERT(result==4); sl@0: #endif sl@0: } sl@0: void CountTest::count1() sl@0: { sl@0: vector numbers(100); sl@0: for(int i = 0; i < 100; i++) sl@0: numbers[i] = i % 3; sl@0: int elements = count(numbers.begin(), numbers.end(), 2); sl@0: CPPUNIT_ASSERT(elements==33); sl@0: #if defined (STLPORT) && !defined (_STLP_NO_ANACHRONISMS) sl@0: elements = 0; sl@0: count(numbers.begin(), numbers.end(), 2, elements); sl@0: CPPUNIT_ASSERT(elements==33); sl@0: #endif sl@0: } sl@0: void CountTest::countif1() sl@0: { sl@0: vector numbers(100); sl@0: for(int i = 0; i < 100; i++) sl@0: numbers[i] = i % 3; sl@0: int elements = count_if(numbers.begin(), numbers.end(), odd); sl@0: CPPUNIT_ASSERT(elements==33); sl@0: #if defined (STLPORT) && !defined (_STLP_NO_ANACHRONISMS) sl@0: elements = 0; sl@0: count_if(numbers.begin(), numbers.end(), odd, elements); sl@0: CPPUNIT_ASSERT(elements==33); sl@0: #endif sl@0: } sl@0: int CountTest::odd(int a_) sl@0: { sl@0: return a_ % 2; sl@0: }