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

📄 chk_array.cpp

📁 一个不错
💻 CPP
📖 第 1 页 / 共 4 页
字号:
   int n_elem,v;   for(n_elem=0,v=43; n_elem<65; ++n_elem,++v) {     tmp.reset(n_elem,Element(v));     if(tmp.size()!=size_t(n_elem)) {       WY_THROW( WyRet() );     }     for(size_t i=0; i<tmp.size(); ++i) {       if(tmp[i]!=Element(v)) {         WY_THROW( WyRet() );       }     }     if(tmp._capacity()<Wy_Array<Element>::min_capacity()) {       WY_THROW( WyRet() );     }     if(tmp._capacity()<size_t(n_elem)) {       WY_THROW( WyRet() );     }   }   for(n_elem=65,v=11; n_elem>0; --n_elem,++v) {     tmp.reset(n_elem,Element(v));     if(tmp.size()!=size_t(n_elem)) {       WY_THROW( WyRet() );     }     for(size_t i=0; i<tmp.size(); ++i) {       if(tmp[i]!=Element(v)) {         WY_THROW( WyRet() );       }     }     if(tmp._capacity()<Wy_Array<Element>::min_capacity()) {       WY_THROW( WyRet() );     }     if(tmp._capacity()<size_t(n_elem)) {       WY_THROW( WyRet() );     }   }   try {     tmp.reset(Wy_Array<Element>::max_capacity()+1,Element());     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(e!=Wym_EFBIG) {       throw;     }   }; } // chk operator= (const Wy_Array&) {   Wy_Array<Element> tmp1;   CHK_DEFAULT(tmp1);   Wy_Array<Element> tmp2;   CHK_DEFAULT(tmp2);   if(&(tmp2=tmp1)!=&tmp2) {     WY_THROW( WyRet() );   }   CHK_DEFAULT(tmp2);   tmp2=tmp2;   CHK_DEFAULT(tmp2);   tmp1.push_back(8);   if(&(tmp2=tmp1)!=&tmp2) {     WY_THROW( WyRet() );   }   if(tmp2!=tmp1) {     WY_THROW( WyRet() );   }   if(tmp2._capacity()<tmp2.min_capacity()) {     WY_THROW( WyRet() );   }   tmp1.push_back(7);   tmp2=tmp1;   if(tmp2==tmp1) {   } else {     WY_THROW( WyRet() );   }   if(tmp2._capacity()<tmp2.min_capacity()) {     WY_THROW( WyRet() );   }   tmp2=tmp2;   // self-reset   if(tmp2!=tmp1) {     WY_THROW( WyRet() );   }   if(tmp2._capacity()<tmp2.min_capacity()) {     WY_THROW( WyRet() );   } } // chk operator= (const WySeg<T>&) {   Wy_Array<Element> tmp1;   CHK_DEFAULT(tmp1);   Wy_Array<Element> tmp2;   CHK_DEFAULT(tmp2);   if(&(tmp2=tmp1.subseg())!=&tmp2) {     WY_THROW( WyRet() );   }   CHK_DEFAULT(tmp2);   tmp1.push_back(8);   if(&(tmp2=tmp1.subseg())!=&tmp2) {     WY_THROW( WyRet() );   }   if(tmp2!=tmp1) {     WY_THROW( WyRet() );   }   if(tmp2._capacity()<tmp2.min_capacity()) {     WY_THROW( WyRet() );   }   tmp1.push_back(7);   tmp2=tmp1.subseg();   if(tmp2==tmp1) {   } else {     WY_THROW( WyRet() );   }   if(tmp2._capacity()<tmp2.min_capacity()) {     WY_THROW( WyRet() );   }   try {     tmp2=tmp2.subseg();   // self-reset     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(e!=Wym_ELOOP) {       WY_THROW(r);     }   }   catch(...) {     throw;   };   if(tmp2!=tmp1) {     WY_THROW( WyRet() );   }   if(tmp2._capacity()<tmp2.min_capacity()) {     WY_THROW( WyRet() );   } } // chk insert(size_t,const Element&) {   Wy_Array<Element> tmp;   CHK_DEFAULT(tmp);   tmp.insert(0,4);   if(tmp.size()!=1) {     WY_THROW( WyRet() );   }   if(tmp[0].value()!=4) {     WY_THROW( WyRet() );   }   tmp.insert(0,3);   if(tmp.size()!=2) {     WY_THROW( WyRet() );   }   if(tmp[0].value()!=3) {     WY_THROW( WyRet() );   }   if(tmp[1].value()!=4) {     WY_THROW( WyRet() );   }   tmp.insert(1,5);   if(tmp.size()!=3) {     WY_THROW( WyRet() );   }   if(tmp[0].value()!=3) {     WY_THROW( WyRet() );   }   if(tmp[1].value()!=5) {     WY_THROW( WyRet() );   }   if(tmp[2].value()!=4) {     WY_THROW( WyRet() );   }   Wy_Array<Element> tmp_cpy(tmp);   if(tmp!=tmp_cpy) {     WY_THROW( WyRet() );   }   try {     tmp.insert(99,5);   }   catch(const Wy_Array<Element>::Reply& e) {     if(tmp!=tmp_cpy) {       WY_THROW( WyRet() );     }     if(e!=Wym_EINVAL) {       WY_THROW( WyRet(e) );     }   }   catch(...) {     WY_THROW( WyRet() );   };   tmp.reset();   CHK_DEFAULT(tmp);   for(int i=0; i<100; ++i) {     tmp.insert(i,i);     if(tmp[i].value()!=i) {       WY_THROW( WyRet() );     }     if(tmp.size()!=size_t(i+1)) {       WY_THROW( WyRet() );     }   }   for(int i=0; i<100; ++i) {     if(tmp[i].value()!=i) {       WY_THROW( WyRet() );     }   }   tmp.reset();   CHK_DEFAULT(tmp);   tmp.insert(0,0);   tmp.insert(1,1);   tmp.insert(2,2);           // 012   tmp.insert(1,tmp.back());  // 0212   tmp.insert(3,tmp.back());  // 02122   if(tmp[0]!=0) {     WY_THROW( WyRet() );   }   if(tmp[1]!=2) {     WY_THROW( WyRet() );   }   if(tmp[2]!=1) {     WY_THROW( WyRet() );   }   if(tmp[3]!=2) {     WY_THROW( WyRet() );   }   if(tmp[4]!=2) {     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&) {   Wy_Array<Element> tmp;   CHK_DEFAULT(tmp);   tmp.push_back(6);   tmp.push_back(89);   if(tmp.size()!=2) {     WY_THROW( WyRet() );   }   if((tmp[0].value()!=6)||(tmp[1].value()!=89)) {     WY_THROW( WyRet() );   }   Wy_Array<Element> tmp2(tmp);   tmp2.insert(1,tmp);   if(tmp2.size()!=2*tmp.size()) {     WY_THROW( WyRet() );   }   if((tmp2[0].value()!=6)||(tmp2[1].value()!=6)) {     WY_THROW( WyRet() );   }   if((tmp2[2].value()!=89)||(tmp2[3].value()!=89)) {     WY_THROW( WyRet() );   }   tmp.reset(tmp2);   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(const WyRet& e) {     WY_THROW( WyRet(e) );   }   catch(...) {     WY_THROW( WyRet() );   }; } // chk resize(size_t) {   Wy_Array<Element> tmp;   CHK_DEFAULT(tmp);   tmp.resize(0);   CHK_DEFAULT(tmp);   tmp.resize(1);   if(tmp.size()!=1) {     WY_THROW( WyRet() );   }   if(tmp[0].is_default()==false) {     WY_THROW( WyRet() );   }   tmp.push_back(1);   tmp.resize(3);   if(tmp.size()!=3) {     WY_THROW( WyRet() );   }   Wy_Array<Element> tmp2(tmp);   tmp.resize(99);   if(tmp.size()!=99) {     WY_THROW( WyRet() );   }   if(tmp[1]!=1) {     WY_THROW( WyRet() );   }   tmp.resize(tmp2.size());   if(tmp!=tmp2) {     WY_THROW( WyRet() );   }   Wy_Array<Element> tmp_cpy(tmp);   if(tmp!=tmp_cpy) {     WY_THROW( WyRet() );   }   try {     tmp.resize(tmp.max_capacity()+1);     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(tmp!=tmp_cpy) {       WY_THROW( WyRet() );     }     if(e!=Wym_EFBIG) {       WY_THROW( WyRet(e) );     }   }   catch(...) {     WY_THROW( WyRet() );   }; } // chk resize(size_t, const T&) {   Wy_Array<Element> tmp;   CHK_DEFAULT(tmp);   tmp.resize(0,Element());   CHK_DEFAULT(tmp);   tmp.resize(1,Element(100));   if(tmp.size()!=1) {     WY_THROW( WyRet() );   }   if(tmp[0].value()!=100) {     WY_THROW( WyRet() );   }   tmp.push_back(1);   tmp.resize(3,Element(100));   if(tmp.size()!=3) {     WY_THROW( WyRet() );   }   Wy_Array<Element> tmp2(tmp);   tmp.resize(99,Element(99));   if(tmp.size()!=99) {     WY_THROW( WyRet() );   }   if(tmp[1]!=1) {     WY_THROW( WyRet() );   }   for(size_t i=3; i<tmp.size(); ++i) {     if(tmp[i]!=99) {       WY_THROW( WyRet() );     }   }   tmp.resize(tmp2.size());   if(tmp!=tmp2) {     WY_THROW( WyRet() );   }   Wy_Array<Element> tmp_cpy(tmp);   if(tmp!=tmp_cpy) {     WY_THROW( WyRet() );   }   try {     tmp.resize(tmp.max_capacity()+1,Element());     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(tmp!=tmp_cpy) {       WY_THROW( WyRet() );     }     if(e!=Wym_EFBIG) {       WY_THROW( WyRet(e) );     }   }   catch(...) {     WY_THROW( WyRet() );   }; } // chk replace(size_t,size_t,size_t,const T&) {   const int ObjCnt=Element::obj_cnt();   Wy_Array<Element> tmp;   CHK_DEFAULT(tmp);   try {     tmp.replace(1,1,1,Element());     WY_THROW( WyRet() );   }   catch(const Wy_Array<Element>::Reply& e) {     if(e!=Wym_EINVAL) {       WY_THROW( WyRet(e) );     }   };   CHK_DEFAULT(tmp);   if(ObjCnt!=Element::obj_cnt()) {     WY_THROW( WyRet() );   }   // loop test, so the second loop wont reallocate buffer   //   for(int loopcnt=0; loopcnt<3; ++loopcnt) {     tmp.replace(0,1,0,Element());     CHK_DEFAULT(tmp);     if(ObjCnt!=Element::obj_cnt()) {       WY_THROW( WyRet() );     }       tmp.replace(0,1,1,Element(5));     if(tmp.size()!=1) {       WY_THROW( WyRet() );     }     if(tmp[0]!=5) {       WY_THROW( WyRet() );     }     if(Element::obj_cnt()!=ObjCnt+1) {       WY_THROW( WyRet() );     }       tmp.replace(0,0,1,Element(4));     if(tmp.size()!=2) {       WY_THROW( WyRet() );     }     if(tmp[0]!=4) {       WY_THROW( WyRet() );     }     if(Element::obj_cnt()!=ObjCnt+2) {       WY_THROW( WyRet() );     }       tmp.replace(2,0,1,Element(6));     if(tmp.size()!=3) {       WY_THROW( WyRet() );     }     if(Element::obj_cnt()!=ObjCnt+3) {       WY_THROW( WyRet() );     }     if(tmp[0]!=4) {       WY_THROW( WyRet() );     }     if(tmp[1]!=5) {       WY_THROW( WyRet() );     }     if(tmp[2]!=6) {       WY_THROW( WyRet() );     }       tmp.replace(1,1,1,Element(2));     if(tmp.size()!=3) {       WY_THROW( WyRet() );     }     if(Element::obj_cnt()!=ObjCnt+3) {       WY_THROW( WyRet() );     }     if(tmp[0]!=4) {       WY_THROW( WyRet() );     }     if(tmp[1]!=2) {       WY_THROW( WyRet() );     }     if(tmp[2]!=6) {       WY_THROW( WyRet() );     }       tmp.replace(1,1,2,Element(2));     if(tmp.size()!=4) {       WY_THROW( WyRet() );     }     if(Element::obj_cnt()!=ObjCnt+4) {       WY_THROW( WyRet() );     }     if(tmp[0]!=4) {       WY_THROW( WyRet() );     }     if(tmp[1]!=2) {       WY_THROW( WyRet() );     }     if(tmp[2]!=2) {       WY_THROW( WyRet() );     }     if(tmp[3]!=6) {       WY_THROW( WyRet() );     }       tmp.replace(0,1,2,Element(4));     if(tmp.size()!=5) {       WY_THROW( WyRet() );     }     if(Element::obj_cnt()!=ObjCnt+5) {       WY_THROW( WyRet() );     }     if(tmp[0]!=4) {       WY_THROW( WyRet() );

⌨️ 快捷键说明

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