📄 ptr2_test.cpp
字号:
#include <vector>#include <algorithm>#include <functional>#include "cppunit/cppunit_proxy.h"#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)using namespace std;#endif//// TestCase class//class Ptr2Test : public CPPUNIT_NS::TestCase{ CPPUNIT_TEST_SUITE(Ptr2Test); CPPUNIT_TEST(ptrbin1); CPPUNIT_TEST(ptrbin2); CPPUNIT_TEST(ptrun1); CPPUNIT_TEST(ptrun2); CPPUNIT_TEST_SUITE_END();protected: void ptrbin1(); void ptrbin2(); void ptrun1(); void ptrun2();};CPPUNIT_TEST_SUITE_REGISTRATION(Ptr2Test);//// tests implementation//static int sum(int x_, int y_){ return x_ + y_;}bool even(int n_){ return(n_ % 2) == 0;}void Ptr2Test::ptrbin1(){ int input1 [4] = { 7, 2, 3, 5 }; int input2 [4] = { 1, 5, 5, 8 }; int output [4]; transform((int*)input1, (int*)input1 + 4, (int*)input2, (int*)output, pointer_to_binary_function<int, int, int>(sum)); CPPUNIT_ASSERT(output[0]==8); CPPUNIT_ASSERT(output[1]==7); CPPUNIT_ASSERT(output[2]==8); CPPUNIT_ASSERT(output[3]==13);}void Ptr2Test::ptrbin2(){ int input1 [4] = { 7, 2, 3, 5 }; int input2 [4] = { 1, 5, 5, 8 }; int output [4]; transform((int*)input1, (int*)input1 + 4, (int*)input2, (int*)output, ptr_fun(sum)); CPPUNIT_ASSERT(output[0]==8); CPPUNIT_ASSERT(output[1]==7); CPPUNIT_ASSERT(output[2]==8); CPPUNIT_ASSERT(output[3]==13);}void Ptr2Test::ptrun1(){ int array [3] = { 1, 2, 3 }; int* p = find_if((int*)array, (int*)array + 3, pointer_to_unary_function<int, bool>(even)); CPPUNIT_ASSERT(p != array+3); CPPUNIT_ASSERT(*p==2);}void Ptr2Test::ptrun2(){ int array [3] = { 1, 2, 3 }; int* p = find_if((int*)array, (int*)array + 3, ptr_fun(even)); CPPUNIT_ASSERT(p != array+3); CPPUNIT_ASSERT(*p==2);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -