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

📄 chk_array.cpp

📁 一个不错
💻 CPP
📖 第 1 页 / 共 4 页
字号:
  }  tmp.reset();  CHK_DEFAULT(tmp);  tmp.push_back( EleType() );  tmp.push_back( EleType(1) );  tmp.push_back( tmp.back() );  if(tmp.size()!=3) {    WY_THROW( WyRet() );  }  if(tmp[0]!=DefaultElem) {    WY_THROW( WyRet() );  }  if(tmp[1]!=EleType(1)) {    WY_THROW( WyRet() );  }  if(tmp[2]!=EleType(1)) {    WY_THROW( WyRet() );  } } // chk pop_back {  Wy_Array<EleType> tmp;  CHK_DEFAULT(tmp);  tmp.pop_back();  CHK_DEFAULT(tmp);  size_t cap( (tmp._capacity()<<1)+1 );  for(size_t i=0; i<cap; ++i) {    tmp.push_back( EleType() );  }  if(tmp.size()!=cap) {    WY_THROW( WyRet() );  }  while(tmp.size()) {    tmp.pop_back();  };  if(tmp.is_default()==false) {    WY_THROW( WyRet() );  } } // chk erase(size_t,size_t) {  Wy_Array<EleType> tmp;  CHK_DEFAULT(tmp);  tmp.erase(0,1);  CHK_DEFAULT(tmp);  size_t cap( (tmp._capacity()<<1)+1 );  for(size_t i=0; i<cap; ++i) {    tmp.push_back( EleType() );  }  if(tmp.size()!=cap) {    WY_THROW( WyRet() );  }  size_t rsize=tmp.size();  tmp.erase(tmp.size(),100);  if(tmp.size()!=rsize) {    WY_THROW( WyRet() );  }  tmp.erase(tmp.size()-1,0);  if(tmp.size()!=rsize) {    WY_THROW( WyRet() );  }  tmp.erase(0,tmp.size());  if(tmp.size()!=0) {    WY_THROW( WyRet() );  }  rsize=tmp.size();  try {    tmp.erase(tmp.size()+1,1);    WY_THROW( WyRet() );  }  catch(const typename Wy_Array<EleType>::Reply& e) {    if(e!=Wym_EINVAL) {      WY_THROW( WyRet() );    }  };  if(tmp.size()!=rsize) {    WY_THROW( WyRet() );  } } // chk erase(size_t, BigNum) {   Wy_Array<EleType> tmp;   CHK_DEFAULT(tmp);   tmp.resize(4);   if(tmp.size()!=4) {     WY_THROW( WyRet() );   }   Wy_Array<EleType> tmp_cpy(tmp);   if(tmp!=tmp_cpy) {     WY_THROW( WyRet() );   }   try {     tmp.erase(tmp.size()+1,999);     WY_THROW( WyRet() );   }   catch(const typename Wy_Array<EleType>::Reply& e) {     if(tmp!=tmp_cpy) {       WY_THROW( WyRet() );     }     if(e!=Wym_EINVAL) {       WY_THROW( WyRet(e) );     }   }   catch(...) {     WY_THROW( WyRet() );   };   tmp.erase(tmp.size(),999);   if(tmp!=tmp_cpy) {     WY_THROW( WyRet() );   }   tmp.erase(tmp_cpy.size()-1,999);   if(tmp.size()!=tmp_cpy.size()-1) {     WY_THROW( WyRet() );   }   tmp.erase(0,999);   if(tmp.size()!=0) {     WY_THROW( WyRet() );   } } // chk insert(size_t,const T&) {  Wy_Array<EleType> tmp;  CHK_DEFAULT(tmp);  tmp.insert(0,DefaultElem);  if(tmp.size()!=1) {    WY_THROW( WyRet() );  }  tmp.insert(0,DefaultElem);  if(tmp.size()!=2) {    WY_THROW( WyRet() );  }  tmp.insert(0,DefaultElem);  if(tmp.size()!=3) {    WY_THROW( WyRet() );  }  tmp.insert(1,DefaultElem);  if(tmp.size()!=4) {    WY_THROW( WyRet() );  }  tmp.insert(tmp.size()-1,EleType(5));  // xxx5x  if(tmp.size()!=5) {    WY_THROW( WyRet() );  }  tmp.insert(tmp.size(),EleType(6));    // xxx5x6  if(tmp.size()!=6) {    WY_THROW( WyRet() );  }  tmp.insert(tmp.size()-2,tmp.back());  // xxx56x6  if(tmp.size()!=7) {    WY_THROW( WyRet() );  }  if(tmp[3]!=EleType(5)) {    WY_THROW( WyRet() );  }  if(tmp[4]!=EleType(6)) {    WY_THROW( WyRet() );  }  if(tmp[5]!=DefaultElem) {    WY_THROW( WyRet() );  }  if(tmp[6]!=EleType(6)) {    WY_THROW( WyRet() );  }  try {    tmp.insert(tmp.size()+1,EleType());    WY_THROW( WyRet() );  }  catch(const typename Wy_Array<EleType>::Reply& e) {    if(e!=Wym_EINVAL) {      WY_THROW( WyRet() );    }  };  if(tmp.size()!=7) {    WY_THROW( WyRet() );  } } // chk insert(size_t,size_t,const Element&) {   Wy_Array<Element> tmp;   CHK_DEFAULT(tmp);   tmp.insert(0,0,Element());   CHK_DEFAULT(tmp);   tmp.insert(0,1,Element(34));   if(tmp.size()!=1) {     WY_THROW( WyRet() );   }   if(tmp[0]!=Element(34)) {     WY_THROW( WyRet() );   }   tmp.insert(0,2,Element(88));   if(tmp.size()!=3) {     WY_THROW( WyRet() );   }   if((tmp[0]!=88)||(tmp[1]!=88)||(tmp[2]!=Element(34))) {     WY_THROW( WyRet() );   }   tmp.insert(1,2,Element(77));   if(tmp.size()!=5) {     WY_THROW( WyRet() );   }   if((tmp[0]!=88)||(tmp[1]!=77)||(tmp[2]!=77)       ||(tmp[3]!=88)||(tmp[4]!=Element(34))) {     WY_THROW( WyRet() );   }   try {     tmp.insert(tmp.size()+1,0,Element());     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(e!=Wym_EINVAL) {       WY_THROW( WyRet(e) );     }   };   try {     tmp.insert(tmp.size(),tmp.max_capacity()+1,Element());     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(e!=Wym_EFBIG) {       WY_THROW( WyRet(e) );     }   }; } // chk insert(size_t,const WySeg<Element>&) {   Element arr[]={6,89};   WySeg<Element> segarr(arr,sizeof(arr)/sizeof(Element));   Wy_Array<Element> tmp;   CHK_DEFAULT(tmp);   tmp.insert(0,segarr);   if(tmp.size()!=sizeof(arr)/sizeof(Element)) {     WY_THROW( WyRet() );   }   if((tmp[0].value()!=6)||(tmp[1].value()!=89)) {     WY_THROW( WyRet() );   }   tmp.insert(1,segarr);   if(tmp.size()!=2*sizeof(arr)/sizeof(Element)) {     WY_THROW( WyRet() );   }   if((tmp[0].value()!=6)||(tmp[1].value()!=6)) {     WY_THROW( WyRet() );   }   if((tmp[2].value()!=89)||(tmp[3].value()!=89)) {     WY_THROW( WyRet() );   }   tmp.insert(tmp.size(),segarr);   if(tmp.size()!=3*sizeof(arr)/sizeof(Element)) {     WY_THROW( WyRet() );   }   if((tmp[0].value()!=6)||(tmp[1].value()!=6)) {     WY_THROW( WyRet() );   }   if((tmp[2].value()!=89)||(tmp[3].value()!=89)) {     WY_THROW( WyRet() );   }   if((tmp[4].value()!=6)||(tmp[5].value()!=89)) {     WY_THROW( WyRet() );   }   Wy_Array<Element> tmp2(tmp);   if(tmp!=tmp2) {     WY_THROW( WyRet() );   }   try {     tmp.insert(tmp.size()+1,segarr);     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(tmp!=tmp2) {       WY_THROW( WyRet() );     }     if(e!=Wym_EINVAL) {       WY_THROW( WyRet(e) );     }   }   catch(...) {     WY_THROW( WyRet() );   };   if(tmp!=tmp2) {     WY_THROW( WyRet() );   }   try {     tmp.insert(1,tmp.subseg());     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(tmp!=tmp2) {       WY_THROW( WyRet() );     }     if(e!=Wym_ELOOP) {       WY_THROW( WyRet(e) );     }   }   catch(...) {     WY_THROW( WyRet() );   };   if(tmp!=tmp2) {     WY_THROW( WyRet() );   }   for(int i=0; i<100; ++i) {     tmp2._reserve(tmp2.size()+segarr.size());     tmp.insert(tmp.size()>>1,segarr);     tmp2.insert(tmp2.size()>>1,segarr);     if(tmp!=tmp2) {       WY_THROW( WyRet() );     }     if(tmp._capacity()>(tmp.size()<<1)) {       WY_THROW( WyRet() );     }     if(tmp2._capacity()>(tmp2.size()<<1)) {       WY_THROW( WyRet() );     }   } } // chk insert(size_t,const Wy_Array<Element>&) {   Wy_Array<Element> tmp;   CHK_DEFAULT(tmp);   Wy_Array<Element> tmp2;   tmp2.push_back(6);   tmp2.push_back(89);   tmp.insert(0,tmp2);   if(tmp.size()!=tmp2.size()) {     WY_THROW( WyRet() );   }   if((tmp[0].value()!=6)||(tmp[1].value()!=89)) {     WY_THROW( WyRet() );   }   tmp.insert(1,tmp2);   if(tmp.size()!=2*tmp2.size()) {     WY_THROW( WyRet() );   }   if((tmp[0].value()!=6)||(tmp[1].value()!=6)) {     WY_THROW( WyRet() );   }   if((tmp[2].value()!=89)||(tmp[3].value()!=89)) {     WY_THROW( WyRet() );   }   tmp.insert(tmp.size(),tmp2);   if(tmp.size()!=3*tmp2.size()) {     WY_THROW( WyRet() );   }   if((tmp[0].value()!=6)||(tmp[1].value()!=6)) {     WY_THROW( WyRet() );   }   if((tmp[2].value()!=89)||(tmp[3].value()!=89)) {     WY_THROW( WyRet() );   }   if((tmp[4].value()!=6)||(tmp[5].value()!=89)) {     WY_THROW( WyRet() );   }   tmp2.reset(tmp);   if(tmp!=tmp2) {     WY_THROW( WyRet() );   }   try {     tmp.insert(tmp.size()+1,tmp2);     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(tmp!=tmp2) {       WY_THROW( WyRet() );     }     if(e!=Wym_EINVAL) {       WY_THROW( WyRet(e) );     }   }   catch(...) {     WY_THROW( WyRet() );   };   if(tmp!=tmp2) {     WY_THROW( WyRet() );   }   try {     tmp.insert(1,tmp);     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(tmp!=tmp2) {       WY_THROW( WyRet() );     }     if(e!=Wym_ELOOP) {       WY_THROW( WyRet(e) );     }   }   catch(...) {     WY_THROW( WyRet() );   };   if(tmp!=tmp2) {     WY_THROW( WyRet() );   } } // chk resize(size_t) {  Wy_Array<EleType> tmp;  CHK_DEFAULT(tmp);  tmp.resize(0);  CHK_DEFAULT(tmp);  tmp.resize(1);  if(tmp.size()!=1) {    WY_THROW( WyRet() );  }  tmp.resize(2);  if(tmp.size()!=2) {    WY_THROW( WyRet() );  }  tmp.resize(100);  if(tmp.size()!=100) {    WY_THROW( WyRet() );  }  tmp.resize(101);  if(tmp.size()!=101) {    WY_THROW( WyRet() );  }  tmp.resize(90);  if(tmp.size()!=90) {    WY_THROW( WyRet() );  }  try {    tmp.resize(tmp.max_capacity()+1);    WY_THROW( WyRet() );  }  catch(const typename Wy_Array<EleType>::Reply& e) {    if(e!=Wym_EFBIG) {      WY_THROW( WyRet() );    }  };  if(tmp.size()!=90) {    WY_THROW( WyRet() );  }  tmp.resize(1);  if(tmp.size()!=1) {    WY_THROW( WyRet() );  }  tmp.resize(0);  if(tmp.size()!=0) {    WY_THROW( WyRet() );  }  CHK_DEFAULT(tmp); } // chk resize(size_t, const EleType&) {  Wy_Array<EleType> tmp;  CHK_DEFAULT(tmp);  tmp.resize(0,EleType());  CHK_DEFAULT(tmp);  tmp.resize(1,EleType());  if(tmp.size()!=1) {    WY_THROW( WyRet() );  }  tmp.resize(2,EleType());  if(tmp.size()!=2) {    WY_THROW( WyRet() );  }  tmp.resize(100,EleType());  if(tmp.size()!=100) {    WY_THROW( WyRet() );  }  tmp.resize(101,EleType());  if(tmp.size()!=101) {    WY_THROW( WyRet() );  }  tmp.resize(90,EleType());  if(tmp.size()!=90) {    WY_THROW( WyRet() );  }  try {    tmp.resize(tmp.max_capacity()+1,EleType());    WY_THROW( WyRet() );  }  catch(const typename Wy_Array<EleType>::Reply& e) {    if(e!=Wym_EFBIG) {      WY_THROW( WyRet() );    }  };  if(tmp.size()!=90) {    WY_THROW( WyRet() );  }  tmp.resize(1,EleType());  if(tmp.size()!=1) {    WY_THROW( WyRet() );  }  tmp.resize(0,EleType());  if(tmp.size()!=0) {    WY_THROW( WyRet() );  }  CHK_DEFAULT(tmp); }};// chk Wy_Array<WyCSeg>, for WyCSeg not defined operator==static void ck_array_cseg(void){ Wy_Array<WyCSeg> tmp; if(tmp.is_default()==false) {   WY_THROW( WyRet() ); } tmp.push_back(WyCSeg()); if(tmp.size()!=1) {   WY_THROW( WyRet() ); }};enum ENUM { A,B,C };template<>struct Wy_Array<ENUM> : Wy__ArrayValue<ENUM> {  WY_THROW_REPLY;  Wy_Array() : Wy__ArrayValue<ENUM>() {};  Wy_Array(size_t s, const ENUM& elem) : Wy__ArrayValue<ENUM>(s,elem) {};  Wy_Array(const WySeg<ENUM>& s) : Wy__ArrayValue<ENUM>(s) {};  Wy_Array(const WySeg<const ENUM>& s) : Wy__ArrayValue<ENUM>(s) {};  Wy_Array(const Wy_Array& s) : Wy__ArrayValue<ENUM>(s) {};  Wy_Array(Wy_Array& p, Wy::ByMove_t t) : Wy__ArrayValue<ENUM>(p,t) {};};static void ck_2d(void){ Wy_Array< Wy_Array<int> > a(10, Wy_Array<int>(10,int())); if(a.size()!=10) {   WY_THROW( WyRet() ); } for(size_t i=0; i<a.size(); ++i) {   if(a[i].size()!=10) {     WY_THROW( WyRet() );   }   for(size_t j=0; j<a[i].size(); ++j) {     //a[i][j]=i*j;   } }};static void ck_seg(void){ const int arr1[]={154,542,53}; const int arr2[]={4,42,513}; const WySeg<const int> ele_arr1(arr1,3); const WySeg<const int> ele_arr2(arr2,3); Wy_Array< WySeg<const int> > a1; if(a1.size()!=0) {   WY_THROW( WyRet() ); } a1.push_back( ele_arr1 ); if(a1.size()!=1) {   WY_THROW( WyRet() ); } a1.push_back( ele_arr2 ); if(a1.size()!=2) {   WY_THROW( WyRet() ); } if(a1[0][0]!=arr1[0]) {   WY_THROW( WyRet() ); } if(a1[0][1]!=arr1[1]) {   WY_THROW( WyRet() ); } if(a1[0][2]!=arr1[2]) {   WY_THROW( WyRet() ); } if(*a1.begin()!=ele_arr1) {   WY_THROW( WyRet() ); } if(a1.front()!=ele_arr1) {   WY_THROW( WyRet() ); } if(a1.back()!=ele_arr2) {   WY_THROW( WyRet() ); } //a1.resize(2);};int main(void)try { Wy::cout << "Checking wy_array.h ...\n"; t0(); int cobjs( Element::obj_cnt() ); t1(); if(Element::obj_cnt()!=cobjs) {   Wy::cout << "objcnt before t1()= " << cobjs            << ", after t1()= " << Element::obj_cnt() << '\n';   WY_THROW( WyRet() ); } cobjs= Element::obj_cnt(); t2(); if(Element::obj_cnt()!=cobjs) {   Wy::cout << "objcnt before t2()= " << cobjs            << ", after t2()= " << Element::obj_cnt() << '\n';   WY_THROW( WyRet() ); } t_sort(); ck_array< Wy_Array<Element> >(); ck_array< Wy_Array< Wy_Array<Element> > >(); ck_array<WyReply>(); ck_array<WyRet>(); ck_array<WyStr>(); ck_array<WyTimeSpec>(); ck_array<WyDate>(); ck_array<WyFileStat>(); ck_array<WyFileHandle>(); ck_array<WyDirEnt>(); ck_array<WyTermios>(); //ck_array<Wy_FdSet>(); ck_array<Wy_ThreadID>(); ck_array_cseg(); ck_array_value<char>();  ck_array_value<bool>(); ck_array_value<signed char>(); ck_array_value<signed short>(); ck_array_value<signed int>(); ck_array_value<signed long int>(); ck_array_value<signed long long int>(); ck_array_value<unsigned char>(); ck_array_value<unsigned short>(); ck_array_value<unsigned int>(); ck_array_value<unsigned long int>(); ck_array_value<unsigned long long int>(); ck_array_value<float>(); ck_array_value<double>(); ck_array_value<long double>(); ck_array_value<char*>(); ck_array_value<const int*>(); ck_array_value<float*>(); ck_array_value<Element*>(); ck_array_value<const Element*>(); ck_array_value<int(*)(int)>(); ck_array_value<ENUM>(); ck_array<bool>(); ck_array<signed int>(); ck_array<unsigned int>(); ck_array<float>(); ck_2d(); ck_seg(); Wy::cout << "Checked Ok\n"; return(0);}catch(const WyRet& e) { Wy::cerr << Wy::wrd(e) << "\n"; return(e->c_repcode());}catch(const std::exception& e) { Wy::cerr << "std::exception\n"; return(-1);}catch(...) { Wy::cerr << "unknown unwind\n"; return(-1);};

⌨️ 快捷键说明

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