ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

innerprod_test.cpp
Go to the documentation of this file.
00001 #include <vector>
00002 #include <algorithm>
00003 #include <numeric>
00004 
00005 #include "cppunit/cppunit_proxy.h"
00006 
00007 #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
00008 using namespace std;
00009 #endif
00010 
00011 //
00012 // TestCase class
00013 //
00014 class InnerprodTest : public CPPUNIT_NS::TestCase
00015 {
00016   CPPUNIT_TEST_SUITE(InnerprodTest);
00017   CPPUNIT_TEST(inprod0);
00018   CPPUNIT_TEST(inprod1);
00019   CPPUNIT_TEST(inprod2);
00020   CPPUNIT_TEST_SUITE_END();
00021 
00022 protected:
00023   void inprod0();
00024   void inprod1();
00025   void inprod2();
00026 
00027   static size_t add(size_t a_, size_t b_) {
00028     return a_ + b_;
00029   }
00030 
00031   static size_t mult(size_t a_, size_t b_) {
00032     return a_ * b_;
00033   }
00034 };
00035 
00036 CPPUNIT_TEST_SUITE_REGISTRATION(InnerprodTest);
00037 
00038 //
00039 // tests implementation
00040 //
00041 void InnerprodTest::inprod0()
00042 {
00043   int vector1[5] = { 1, 2, 3, 4, 5 };
00044   int vector2[5] = { 1, 2, 3, 4, 5 };
00045 
00046   int result;
00047   result = inner_product(vector1, vector1 + 5, vector2, 0);
00048   CPPUNIT_ASSERT(result==55);
00049 }
00050 void InnerprodTest::inprod1()
00051 {
00052   vector<size_t> v1(3);
00053   vector<size_t> v2(v1.size());
00054   for (size_t i = 0; i < v1.size(); ++i) {
00055     v1[i] = i + 1;
00056     v2[i] = v1.size() - i;
00057   }
00058   size_t result = inner_product(v1.begin(), v1.end(), v2.begin(), (size_t)0);
00059   CPPUNIT_ASSERT(result == 10);
00060 }
00061 void InnerprodTest::inprod2()
00062 {
00063   vector<size_t> v1(3);
00064   vector<size_t> v2(v1.size());
00065   for(size_t i = 0; i < v1.size(); ++i) {
00066     v1[i] = i + 1;
00067     v2[i] = v1.size() - i;
00068   }
00069   size_t result=inner_product(v1.begin(), v1.end(), v2.begin(), (size_t)1, mult, add);
00070 
00071   CPPUNIT_ASSERT(result == 64);
00072 }

Generated on Sun May 27 2012 04:35:26 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.