📄 chk_cseg.cpp
字号:
WY_THROW( WyRet() ); } if(ss.rfind(&fidx,200,WyCSeg("123"))==false) { WY_THROW( WyRet() ); } if(fidx!=8) { WY_THROW( WyRet() ); } if(ss.rfind(&fidx,7,WyCSeg("123"))==false) { WY_THROW( WyRet() ); } if(fidx!=5) { WY_THROW( WyRet() ); } if(ss.rfind(&fidx,ss.size(),WyCSeg("0\xff"))==false) { WY_THROW( WyRet() ); } if(fidx!=14) { WY_THROW( WyRet() ); } fidx=100; if(ss.rfind(&fidx,ss.size()-2,WyCSeg("0\xff"))==false) { WY_THROW( WyRet() ); } if(fidx!=14) { WY_THROW( WyRet() ); } if(ss.rfind(NULL,0,WyCSeg("0\xff"))==true) { WY_THROW( WyRet() ); } fidx=100; if(ss.rfind(&fidx,10,WyCSeg("\xff"))==false) { WY_THROW( WyRet() ); } if(fidx!=0) { WY_THROW( WyRet() ); } if(ss.rfind(&fidx,0,ss)==false) { WY_THROW( WyRet() ); } if(fidx!=0) { WY_THROW( WyRet() ); } if(ss.rfind(&fidx,1,ss.cseg(1))==false) { WY_THROW( WyRet() ); } if(fidx!=1) { WY_THROW( WyRet() ); } const WyCSeg ss2; fidx=100; if(ss2.rfind(&fidx,0,WyCSeg())==true) { WY_THROW( WyRet() ); } if(fidx!=100) { WY_THROW( WyRet() ); } } // findc(size_t*,size_t,char) { const WyCSeg ss("\xffx1111231237890\xff"); size_t fidx; fidx=100; if(ss.findc(&fidx,100,'1')==true) { WY_THROW( WyRet() ); } if(fidx!=100) { WY_THROW( WyRet() ); } if(ss.findc(&fidx,0,'1')==false) { WY_THROW( WyRet() ); } if(fidx!=2) { WY_THROW( WyRet() ); } if(ss.findc(&fidx,0,'A')==true) { WY_THROW( WyRet() ); } if(fidx!=2) { WY_THROW( WyRet() ); } if(ss.findc(&fidx,1,'\xff')==false) { WY_THROW( WyRet() ); } if(fidx!=ss.size()-1) { WY_THROW( WyRet() ); } } // findc(size_t*,size_t,const WyCSeg&) { const WyCSeg ss("\xffx1111231237890\xff"); size_t fidx; fidx=100; if(ss.findc(&fidx,0,WyCSeg("92"))==false) { WY_THROW( WyRet() ); } if(fidx!=6) { WY_THROW( WyRet() ); } if(ss.findc(&fidx,7,WyCSeg("92"))==false) { WY_THROW( WyRet() ); } if(fidx!=9) { WY_THROW( WyRet() ); } if(ss.findc(&fidx,0,WyCSeg("_+=-*"))==true) { WY_THROW( WyRet() ); } if(fidx!=9) { WY_THROW( WyRet() ); } if(ss.findc(&fidx,1,WyCSeg("_+=-*\xff"))==false) { WY_THROW( WyRet() ); } if(fidx!=ss.size()-1) { WY_THROW( WyRet() ); } fidx=100; if(ss.findc(&fidx,ss.size(),ss)==true) { WY_THROW( WyRet() ); } if(fidx!=100) { WY_THROW( WyRet() ); } } // findc_not(size_t*,size_t,char) { const WyCSeg ss("\xffx1111231237890\xff"); size_t fidx; fidx=100; if(ss.findc_not(&fidx,100,'1')==true) { WY_THROW( WyRet() ); } if(fidx!=100) { WY_THROW( WyRet() ); } if(ss.findc_not(&fidx,2,'1')==false) { WY_THROW( WyRet() ); } if(fidx!=6) { WY_THROW( WyRet() ); } } // findc_not(size_t*,size_t,const WyCSeg&) { const WyCSeg ss("\xffx1111231237890\xff"); size_t fidx; fidx=100; if(ss.findc_not(&fidx,1,WyCSeg())==false) { WY_THROW( WyRet() ); } if(fidx!=1) { WY_THROW( WyRet() ); } if(ss.findc_not(&fidx,0,ss)==true) { WY_THROW( WyRet() ); } if(fidx!=1) { WY_THROW( WyRet() ); } if(ss.findc_not(&fidx,0,WyCSeg("92"))==false) { WY_THROW( WyRet() ); } if(fidx!=0) { WY_THROW( WyRet() ); } if(ss.findc_not(&fidx,0,WyCSeg("19x2\xff"))==false) { WY_THROW( WyRet() ); } if(fidx!=7) { WY_THROW( WyRet() ); } if(ss.findc_not(&fidx,8,WyCSeg("19x2\xff"))==false) { WY_THROW( WyRet() ); } if(fidx!=10) { WY_THROW( WyRet() ); } } // rfindc(size_t*,size_t,char) { const WyCSeg ss("\xffx1111231237890\xff"); size_t fidx; fidx=100; if(ss.rfindc(&fidx,100,'x')==false) { WY_THROW( WyRet() ); } if(fidx!=1) { WY_THROW( WyRet() ); } if(ss.rfindc(&fidx,10,'z')==true) { WY_THROW( WyRet() ); } if(fidx!=1) { WY_THROW( WyRet() ); } if(ss.rfindc(&fidx,10,'1')==false) { WY_THROW( WyRet() ); } if(fidx!=8) { WY_THROW( WyRet() ); } if(WyCSeg().rfindc(NULL,0,'a')==true) { WY_THROW( WyRet() ); } } // rfindc(size_t*,size_t,const WyCSeg&) { const WyCSeg ss("\xffx1111231237890\xff"); size_t fidx; fidx=100; if(WyCSeg().rfindc(NULL,100,ss)==true) { WY_THROW( WyRet() ); } if(ss.rfindc(&fidx,100,WyCSeg("321"))==false) { WY_THROW( WyRet() ); } if(fidx!=10) { WY_THROW( WyRet() ); } if(ss.rfindc(&fidx,9,WyCSeg("321"))==false) { WY_THROW( WyRet() ); } if(fidx!=9) { WY_THROW( WyRet() ); } if(ss.rfindc(&fidx,9,WyCSeg("abc\xff"))==false) { WY_THROW( WyRet() ); } if(fidx!=0) { WY_THROW( WyRet() ); } if(ss.rfindc(&fidx,9,WyCSeg())==true) { WY_THROW( WyRet() ); } if(fidx!=0) { WY_THROW( WyRet() ); } if(ss.rfindc(&fidx,9,WyCSeg("_+-)("))==true) { WY_THROW( WyRet() ); } if(fidx!=0) { WY_THROW( WyRet() ); } } // rfindc_not(size_t*,size_t,char) { const WyCSeg ss("\xffx1111231237890\xff"); size_t fidx; fidx=100; if(ss.rfindc_not(&fidx,100,'x')==false) { WY_THROW( WyRet() ); } if(fidx!=ss.size()-1) { WY_THROW( WyRet() ); } if(WyCSeg().rfindc_not(&fidx,100,'x')==true) { WY_THROW( WyRet() ); } if(fidx!=ss.size()-1) { WY_THROW( WyRet() ); } if(ss.rfindc_not(&fidx,100,'\xff')==false) { WY_THROW( WyRet() ); } if(fidx!=ss.size()-2) { WY_THROW( WyRet() ); } if(ss.rfindc_not(&fidx,5,'1')==false) { WY_THROW( WyRet() ); } if(fidx!=1) { WY_THROW( WyRet() ); } } // rfindc(size_t*,size_t,const WyCSeg&) { const WyCSeg ss("\xffx1111231237890\xff"); size_t fidx; fidx=100; if(WyCSeg().rfindc_not(NULL,100,ss)==true) { WY_THROW( WyRet() ); } if(ss.rfindc_not(&fidx,100,WyCSeg("03\xff"))==false) { WY_THROW( WyRet() ); } if(fidx!=13) { WY_THROW( WyRet() ); } if(ss.rfindc_not(&fidx,13,WyCSeg("789123"))==false) { WY_THROW( WyRet() ); } if(fidx!=1) { WY_THROW( WyRet() ); } if(ss.rfindc_not(&fidx,1,WyCSeg("x\xff"))==true) { WY_THROW( WyRet() ); } if(fidx!=1) { WY_THROW( WyRet() ); } }};static void ck_cseg_error(void){ WyRet r; // WyCseg(const char*) try { WyCSeg s1((const char*)0); s1.size(); WY_THROW( WyRet() ); } catch(const WyCSeg::Reply& e) { if(e!=Wym_EFAULT) { throw; } // FALL_THROUGH }; // WyCseg(const char*,size_t) try { WyCSeg s1((const char*)0,1); s1.size(); WY_THROW( WyRet() ); } catch(const WyCSeg::Reply& e) { if(e!=Wym_EFAULT) { throw; } // FALL_THROUGH }; // reset { WyCSeg s1(""); if(s1.size()!=0) { WY_THROW( WyRet() ); } if((r=s1.reset((const char*)0))!=Wym_EFAULT) { WY_THROW(r); } if((r=s1.reset((const char*)0,size_t(1)))!=Wym_EFAULT) { WY_THROW(r); } if((r=s1.reset((const char*)"",(size_t)0))!=Ok) { WY_THROW(r); } if(s1.is_default()==false) { WY_THROW( WyRet() ); } WyCSeg s2("",size_t(0)); if(s2.is_default()==false) { WY_THROW( WyRet() ); } } // reset(const char*) { WyCSeg s1(""); if((r=s1.reset((const char*)0))!=Wym_EFAULT) { WY_THROW(r); } } // chk cseg(size_t,size_t) try { WyCSeg s1("rrr"); s1.cseg(4,1).size(); WY_THROW( WyRet() ); } catch(const WyCSeg::Reply& e) { if(e!=Wym_EINVAL) { throw; } // FALL_THROUGH }; // chk cseg(size_t) try { WyCSeg s1("rrr"); s1.cseg(4).size(); WY_THROW( WyRet() ); } catch(const WyCSeg::Reply& e) { if(e!=Wym_EINVAL) { throw; } // FALL_THROUGH };};static void ck_cseg_aux(void){ // chk strcmp { WyCSeg s1("helo"), s2("heloX"),s3(s1); CHK_EQU(s1,s3); if(Wy::_strcmp(s1,s3)!=0) { WY_THROW( WyRet() ); } if(Wy::_strcmp(s1,s1)!=0) { WY_THROW( WyRet() ); } if(Wy::_strcmp(s1,s2)>=0) { WY_THROW( WyRet() ); } if(Wy::_strcmp(s2,s1)<=0) { WY_THROW( WyRet() ); } if(Wy::_strcmp(s1.begin(),s3.begin())!=0) { WY_THROW( WyRet() ); } if(Wy::_strcmp(s1.begin(),s1.begin())!=0) { WY_THROW( WyRet() ); } if(Wy::_strcmp(s1.begin(),s2.begin())>=0) { WY_THROW( WyRet() ); } if(Wy::_strcmp(s2.begin(),s1.begin())<=0) { WY_THROW( WyRet() ); } { try { WyCSeg s1(""); Wy::_strcmp(s1,(const char*)0); WY_THROW( WyRet() ); } catch(const WyCSeg::Reply& e) { if(e!=Wym_EFAULT) { WY_THROW( WyRet(e) ); } // FALL_THROUGH }; } { try { WyCSeg s1(""); Wy::_strcmp((const char*)0,s1); WY_THROW( WyRet() ); } catch(const WyCSeg::Reply& e) { if(e!=Wym_EFAULT) { WY_THROW( WyRet(e) ); } // FALL_THROUGH }; } } // chk _strcpy { WyCSeg s1("helo"); char buf[6]={0,0,0,0,0,0}; Wy::_strcpy(buf+1,s1); if(std::memcmp(buf+1,s1.begin(),s1.size())!=0) { WY_THROW( WyRet() ); } if((buf[0]!=0)||(buf[sizeof(buf)-1]!=0)) { WY_THROW( WyRet() ); } } // chk _strmove { char buf[]="0123456789aaabbb"; Wy::_strmove(buf+1,buf+3,6); if(std::memcmp(buf,"0345678789aaabbb",16)!=0) { WY_THROW( WyRet() ); } char buf2[]="0123456789aaabbb"; Wy::_strmove(buf2+4,buf2,6); if(std::memcmp(buf2,"0123012345aaabbb",16)!=0) { WY_THROW( WyRet() ); } } // chk _strchr { WyCSeg s("aacddfgg"); const char *p; p=Wy::_strchr(s,'a'); if(p==NULL) { WY_THROW( WyRet() ); } if(*p!='a') { WY_THROW( WyRet() ); } if(p!=&s[0]) { WY_THROW( WyRet() ); } p=Wy::_strchr(s,'d'); if(p==NULL) { WY_THROW( WyRet() ); } if(p!=&s[3]) { WY_THROW( WyRet() ); } if(*p!='d') { WY_THROW( WyRet() ); } p=Wy::_strchr(s,'g'); if(p==NULL) { WY_THROW( WyRet() ); } if(p!=&s[6]) { WY_THROW( WyRet() ); } if(*p!='g') { WY_THROW( WyRet() ); } p=Wy::_strchr(s,'x'); if(p!=NULL) { WY_THROW( WyRet() ); } p=Wy::_strchr(WyCSeg(),'x'); if(p!=NULL) { WY_THROW( WyRet() ); } } // chk _strrchr { WyCSeg s("aacddfgg"); const char *p; p=Wy::_strrchr(s,'a'); if(p==NULL) { WY_THROW( WyRet() ); } if(*p!='a') { WY_THROW( WyRet() ); } if(p!=&s[1]) { WY_THROW( WyRet() ); } p=Wy::_strrchr(s,'d'); if(p==NULL) { WY_THROW( WyRet() ); } if(p!=&s[4]) { WY_THROW( WyRet() ); } if(*p!='d') { WY_THROW( WyRet() ); } p=Wy::_strrchr(s,'g'); if(p==NULL) { WY_THROW( WyRet() ); } if(p!=&s[7]) { WY_THROW( WyRet() ); } if(*p!='g') { WY_THROW( WyRet() ); } p=Wy::_strrchr(s,'x'); if(p!=NULL) { WY_THROW( WyRet() ); } p=Wy::_strrchr(WyCSeg(),'x'); if(p!=NULL) { WY_THROW( WyRet() ); } } // chk _strstr { WyCSeg s("rrstrstt"); const char *p; p=Wy::_strstr(s,"rst"); if(p==NULL) { WY_THROW( WyRet() ); } if(p!=&s[1]) { WY_THROW( WyRet() ); } p=Wy::_strstr(s,"rstt"); if(p==NULL) { WY_THROW( WyRet() ); } if(p!=&s[4]) { WY_THROW( WyRet() ); } p=Wy::_strstr(s,""); if(p==NULL) { WY_THROW( WyRet() ); } if(p!=&s[0]) { WY_THROW( WyRet() ); // feature probably } p=Wy::_strstr(s,"rss"); if(p!=NULL) { WY_THROW( WyRet() ); } p=Wy::_strstr(WyCSeg(),"rss"); if(p!=NULL) { WY_THROW( WyRet() ); } }};static const WyStr chdr( "+---------------+\n" "| main() caught:|\n" "+---------------+\n");int main(void) throw()try { std::cout << "Checking wycseg.h ...\n"; ck_cseg(); ck_cseg_aux(); ck_cseg_error(); ck_cseg_find(); std::cout << "Checked Ok\n"; return(0);}catch(const WyRet& e) { std::cerr << chdr.c_str() << Wy::wrd(e).c_str() << std::endl; return(-1);}catch(const std::exception& e) { std::cerr << chdr.c_str() << "std::exception" << std::endl; return(-1);}catch(...) { std::cerr << chdr.c_str() << "unknown unwind" << std::endl; return(-1);};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -