1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <algorithm>
2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <numeric>
3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <functional>
4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include "cppunit/cppunit_proxy.h"
6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottusing namespace std;
9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//
12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// TestCase class
13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//
14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottclass TimesTest : public CPPUNIT_NS::TestCase
15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{
16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST_SUITE(TimesTest);
17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(times);
18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST_SUITE_END();
19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottprotected:
21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void times();
22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott};
23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick ScottCPPUNIT_TEST_SUITE_REGISTRATION(TimesTest);
25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//
27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// tests implementation
28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//
29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottvoid TimesTest::times()
30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{
31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  int input [4] = { 1, 5, 7, 2 };
32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  int total = accumulate(input, input + 4, 1, multiplies<int>());
33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_ASSERT(total==70);
34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott}
35