1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/genericopenlibs/cppstdlib/stl/test/unit/accum_test.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,50 @@
1.4 +#include <vector>
1.5 +#include <numeric>
1.6 +
1.7 +#include "cppunit/cppunit_proxy.h"
1.8 +
1.9 +#if !defined (STLPORT) || defined (_STLP_USE_NAMESPACES)
1.10 +using namespace std;
1.11 +#endif
1.12 +
1.13 +//
1.14 +// TestCase class
1.15 +//
1.16 +class AccumTest : public CPPUNIT_NS::TestCase
1.17 +{
1.18 + CPPUNIT_TEST_SUITE(AccumTest);
1.19 + CPPUNIT_TEST(accum1);
1.20 + CPPUNIT_TEST(accum2);
1.21 + CPPUNIT_TEST_SUITE_END();
1.22 +
1.23 +protected:
1.24 + void accum1();
1.25 + void accum2();
1.26 + static int mult(int initial_, int element_);
1.27 +};
1.28 +
1.29 +CPPUNIT_TEST_SUITE_REGISTRATION(AccumTest);
1.30 +
1.31 +//
1.32 +// tests implementation
1.33 +//
1.34 +void AccumTest::accum1()
1.35 +{
1.36 + vector<int> v(5);
1.37 + for(int i = 0; (size_t)i < v.size(); ++i)
1.38 + v[i] = i + 1;
1.39 + int sum = accumulate(v.begin(), v.end(), 0);
1.40 + CPPUNIT_ASSERT(sum==15);
1.41 +}
1.42 +void AccumTest::accum2()
1.43 +{
1.44 + vector<int> v(5);
1.45 + for(int i = 0; (size_t)i < v.size(); ++i)
1.46 + v[i] = i + 1;
1.47 + int prod = accumulate(v.begin(), v.end(), 1, mult);
1.48 + CPPUNIT_ASSERT(prod==120);
1.49 +}
1.50 +int AccumTest::mult(int initial_, int element_)
1.51 +{
1.52 + return initial_ * element_;
1.53 +}