⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rm_cp_test.cpp

📁 symbian 上的stl_port进过编译的。
💻 CPP
字号:
#include <vector>#include <algorithm>#include "cppunit/cppunit_proxy.h"#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)using namespace std;#endif//// TestCase class//class RmCpTest : public CPPUNIT_NS::TestCase{  CPPUNIT_TEST_SUITE(RmCpTest);  CPPUNIT_TEST(remcopy1);  CPPUNIT_TEST(remcpif1);  CPPUNIT_TEST(remif1);  CPPUNIT_TEST(remove1);  CPPUNIT_TEST(repcpif1);  CPPUNIT_TEST(replace0);  CPPUNIT_TEST(replace1);  CPPUNIT_TEST(replcpy1);  CPPUNIT_TEST(replif1);  CPPUNIT_TEST(revcopy1);  CPPUNIT_TEST(reverse1);  CPPUNIT_TEST_SUITE_END();protected:  void remcopy1();  void remcpif1();  void remif1();  void remove1();  void repcpif1();  void replace0();  void replace1();  void replcpy1();  void replif1();  void revcopy1();  void reverse1();};CPPUNIT_TEST_SUITE_REGISTRATION(RmCpTest);static bool odd(int a_){  return (a_ % 2) != 0;}//// tests implementation//void RmCpTest::reverse1(){  int numbers[6] = { 0, 1, 2, 3, 4, 5 };  reverse(numbers, numbers + 6);  CPPUNIT_ASSERT(numbers[0]==5);  CPPUNIT_ASSERT(numbers[1]==4);  CPPUNIT_ASSERT(numbers[2]==3);  CPPUNIT_ASSERT(numbers[3]==2);  CPPUNIT_ASSERT(numbers[4]==1);  CPPUNIT_ASSERT(numbers[5]==0);}void RmCpTest::revcopy1(){  int numbers[6] = { 0, 1, 2, 3, 4, 5 };  int result[6];  reverse_copy((int*)numbers, (int*)numbers + 6, (int*)result);  // 5 4 3 2 1 0  CPPUNIT_ASSERT(result[0]==5);  CPPUNIT_ASSERT(result[1]==4);  CPPUNIT_ASSERT(result[2]==3);  CPPUNIT_ASSERT(result[3]==2);  CPPUNIT_ASSERT(result[4]==1);  CPPUNIT_ASSERT(result[5]==0);}void RmCpTest::replif1(){  vector <int> v1(10);  for (int i = 0; (size_t)i < v1.size(); ++i)    v1[i] = i % 5;  replace_if(v1.begin(), v1.end(), odd, 42);  // 0 42 2 42 4 0 42 2 42 4  CPPUNIT_ASSERT(v1[0]==0);  CPPUNIT_ASSERT(v1[1]==42);  CPPUNIT_ASSERT(v1[2]==2);  CPPUNIT_ASSERT(v1[3]==42);  CPPUNIT_ASSERT(v1[4]==4);  CPPUNIT_ASSERT(v1[5]==0);  CPPUNIT_ASSERT(v1[6]==42);  CPPUNIT_ASSERT(v1[7]==2);  CPPUNIT_ASSERT(v1[8]==42);  CPPUNIT_ASSERT(v1[9]==4);}void RmCpTest::replcpy1(){  int numbers[6] = { 0, 1, 2, 0, 1, 2 };  int result[6] = { 0, 0, 0, 0, 0, 0 };  replace_copy((int*)numbers, (int*)numbers + 6, (int*)result, 2, 42);  CPPUNIT_ASSERT(result[0]==0);  CPPUNIT_ASSERT(result[1]==1);  CPPUNIT_ASSERT(result[2]==42);  CPPUNIT_ASSERT(result[3]==0);  CPPUNIT_ASSERT(result[4]==1);  CPPUNIT_ASSERT(result[5]==42);}void RmCpTest::replace0(){  int numbers[6] = { 0, 1, 2, 0, 1, 2 };  replace(numbers, numbers + 6, 2, 42);  // 0 1 42 0 1 42  CPPUNIT_ASSERT(numbers[0]==0);  CPPUNIT_ASSERT(numbers[1]==1);  CPPUNIT_ASSERT(numbers[2]==42);  CPPUNIT_ASSERT(numbers[3]==0);  CPPUNIT_ASSERT(numbers[4]==1);  CPPUNIT_ASSERT(numbers[5]==42);}void RmCpTest::replace1(){  vector <int> v1(10);  for (int i = 0; (size_t)i < v1.size(); ++i)    v1[i] = i % 5;  replace(v1.begin(), v1.end(), 2, 42);  // 0 1 2 3 4 0 1 2 3 4  // 0 1 42 3 4 0 1 42 3 4  CPPUNIT_ASSERT(v1[0]==0);  CPPUNIT_ASSERT(v1[1]==1);  CPPUNIT_ASSERT(v1[2]==42);  CPPUNIT_ASSERT(v1[3]==3);  CPPUNIT_ASSERT(v1[4]==4);  CPPUNIT_ASSERT(v1[5]==0);  CPPUNIT_ASSERT(v1[6]==1);  CPPUNIT_ASSERT(v1[7]==42);  CPPUNIT_ASSERT(v1[8]==3);  CPPUNIT_ASSERT(v1[9]==4);}void RmCpTest::repcpif1(){  vector <int> v1(10);  for (int i = 0; (size_t)i < v1.size(); ++i)    v1[i] = i % 5;  vector <int> v2(v1.size());  // 0 1 2 3 4 0 1 2 3 4  // 0 1 2 3 4 0 1 2 3 4  // 0 42 2 42 4 0 42 2 42 4  replace_copy_if(v1.begin(), v1.end(), v2.begin(), odd, 42);  CPPUNIT_ASSERT(v1[0]==0);  CPPUNIT_ASSERT(v1[1]==1);  CPPUNIT_ASSERT(v1[2]==2);  CPPUNIT_ASSERT(v1[3]==3);  CPPUNIT_ASSERT(v1[4]==4);  CPPUNIT_ASSERT(v1[5]==0);  CPPUNIT_ASSERT(v1[6]==1);  CPPUNIT_ASSERT(v1[7]==2);  CPPUNIT_ASSERT(v1[8]==3);  CPPUNIT_ASSERT(v1[9]==4);  CPPUNIT_ASSERT(v2[0]==0);  CPPUNIT_ASSERT(v2[1]==42);  CPPUNIT_ASSERT(v2[2]==2);  CPPUNIT_ASSERT(v2[3]==42);  CPPUNIT_ASSERT(v2[4]==4);  CPPUNIT_ASSERT(v2[5]==0);  CPPUNIT_ASSERT(v2[6]==42);  CPPUNIT_ASSERT(v2[7]==2);  CPPUNIT_ASSERT(v2[8]==42);  CPPUNIT_ASSERT(v2[9]==4);}void RmCpTest::remove1(){  int numbers[6] = { 1, 2, 3, 1, 2, 3 };  remove((int*)numbers, (int*)numbers + 6, 1);  // 2 3 2 3 2 3  CPPUNIT_ASSERT(numbers[0]==2);  CPPUNIT_ASSERT(numbers[1]==3);  CPPUNIT_ASSERT(numbers[2]==2);  CPPUNIT_ASSERT(numbers[3]==3);  CPPUNIT_ASSERT(numbers[4]==2);  CPPUNIT_ASSERT(numbers[5]==3);}void RmCpTest::remif1(){  int numbers[6] = { 0, 0, 1, 1, 2, 2 };  remove_if((int*)numbers, (int*)numbers + 6, odd);  // 0 0 2 2 2 2  CPPUNIT_ASSERT(numbers[0]==0);  CPPUNIT_ASSERT(numbers[1]==0);  CPPUNIT_ASSERT(numbers[2]==2);  CPPUNIT_ASSERT(numbers[3]==2);  CPPUNIT_ASSERT(numbers[4]==2);  CPPUNIT_ASSERT(numbers[5]==2);}void RmCpTest::remcopy1(){  int numbers[6] = { 1, 2, 3, 1, 2, 3 };  int result[6] = { 0, 0, 0, 0, 0, 0 };  remove_copy((int*)numbers, (int*)numbers + 6, (int*)result, 2);  CPPUNIT_ASSERT(result[0]==1);  CPPUNIT_ASSERT(result[1]==3);  CPPUNIT_ASSERT(result[2]==1);  CPPUNIT_ASSERT(result[3]==3);  CPPUNIT_ASSERT(result[4]==0);  CPPUNIT_ASSERT(result[5]==0);}void RmCpTest::remcpif1(){  int numbers[6] = { 1, 2, 3, 1, 2, 3 };  int result[6] = { 0, 0, 0, 0, 0, 0 };  remove_copy_if((int*)numbers, (int*)numbers + 6, (int*)result, odd);  // 2 2 0 0 0 0  CPPUNIT_ASSERT(result[0]==2);  CPPUNIT_ASSERT(result[1]==2);  CPPUNIT_ASSERT(result[2]==0);  CPPUNIT_ASSERT(result[3]==0);  CPPUNIT_ASSERT(result[4]==0);  CPPUNIT_ASSERT(result[5]==0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -