sl@0: #include sl@0: #include sl@0: 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 AccumTest : public CPPUNIT_NS::TestCase sl@0: { sl@0: CPPUNIT_TEST_SUITE(AccumTest); sl@0: CPPUNIT_TEST(accum1); sl@0: CPPUNIT_TEST(accum2); sl@0: CPPUNIT_TEST_SUITE_END(); sl@0: sl@0: protected: sl@0: void accum1(); sl@0: void accum2(); sl@0: static int mult(int initial_, int element_); sl@0: }; sl@0: sl@0: CPPUNIT_TEST_SUITE_REGISTRATION(AccumTest); sl@0: sl@0: // sl@0: // tests implementation sl@0: // sl@0: void AccumTest::accum1() sl@0: { sl@0: vector v(5); sl@0: for(int i = 0; (size_t)i < v.size(); ++i) sl@0: v[i] = i + 1; sl@0: int sum = accumulate(v.begin(), v.end(), 0); sl@0: CPPUNIT_ASSERT(sum==15); sl@0: } sl@0: void AccumTest::accum2() sl@0: { sl@0: vector v(5); sl@0: for(int i = 0; (size_t)i < v.size(); ++i) sl@0: v[i] = i + 1; sl@0: int prod = accumulate(v.begin(), v.end(), 1, mult); sl@0: CPPUNIT_ASSERT(prod==120); sl@0: } sl@0: int AccumTest::mult(int initial_, int element_) sl@0: { sl@0: return initial_ * element_; sl@0: }