sl@0: #include 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 PlusMinusTest : public CPPUNIT_NS::TestCase sl@0: { sl@0: CPPUNIT_TEST_SUITE(PlusMinusTest); sl@0: CPPUNIT_TEST(plus0); sl@0: CPPUNIT_TEST(minus0); sl@0: CPPUNIT_TEST_SUITE_END(); sl@0: sl@0: protected: sl@0: void plus0(); sl@0: void minus0(); sl@0: }; sl@0: sl@0: CPPUNIT_TEST_SUITE_REGISTRATION(PlusMinusTest); sl@0: sl@0: // sl@0: // tests implementation sl@0: // sl@0: void PlusMinusTest::plus0() sl@0: { sl@0: int input1 [4] = { 1, 6, 11, 8 }; sl@0: int input2 [4] = { 1, 5, 2, 3 }; sl@0: sl@0: int total = inner_product(input1, input1 + 4, input2, 0, plus(), multiplies ()); sl@0: sl@0: CPPUNIT_ASSERT(total==77); sl@0: } sl@0: void PlusMinusTest::minus0() sl@0: { sl@0: int input1 [4] = { 1, 5, 7, 8 }; sl@0: int input2 [4] = { 1, 4, 8, 3 }; sl@0: sl@0: int output [4]; sl@0: sl@0: transform((int*)input1, (int*)input1 + 4, (int*)input2, (int*)output, minus()); sl@0: CPPUNIT_ASSERT(output[0]==0); sl@0: CPPUNIT_ASSERT(output[1]==1); sl@0: CPPUNIT_ASSERT(output[2]==-1); sl@0: CPPUNIT_ASSERT(output[3]==5); sl@0: }