Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygeninnerprod_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
1.7.6.1
|